kamyshev.code
1.86K subscribers
40 photos
565 links
Архитектура, код, софт-скиллы и всё остальное. Вопросы, пожелания, комментарии — @igorkamyshev

https://kamyshev.me
Download Telegram
Мудрость из книги

Изучать паттерны проектирования полезно. Добрался до купленной осенью книги "Погружение в паттерны проектирвования" Александра Швеца.

Обычно, когда говорят "паттерны проектирования" имеют ввиду работу с исключительно объектно-ориентированными системами, потом книга начинается с краткого введения в ООП.

ООП — методология разработки программ, в которой все важные вещи представляются объектами. Каждый объект построен по определенным правилам, которые называют классом. Классы основываются друг на друге, что называют наследованием.

Конспект книги Александра Швеца "Погружение в паттерны проектирования".

#проектирование
​​Мудрость из книги

Четыре принципа поверх которых строяться объектно-ориентированные приложения:
1. Абстракция — рассмотрения объекта реального мира в контексте конкретной задачи.
2. Инкапсуляция — сокрытие внутренней реализации.
3. Наследование — передача характеристик одних объектов другим через отношение "является" (кот является животным).
4. Полиморфизм — возможность работать с конкретной структорой данных, будто с абстрактной.

Конспект книги Александра Швеца "Погружение в паттерны проектирования".

По мнению Роберта Мартина, ООП не совсем про эти три характеристики, они легко придаются програмам не следующим объектно-ориентированной парадигме.

#проектирование
Мудрость из книги

Один из признаков хорошо спроектированного приложения — переиспользование кода. Это снижает стоимость разработки, повышает надежность (меньше кода — меньше багов). А еще, хорошая архитектура позволяет легко расширять программу.

Конспект книги Александра Швеца "Погружение в паттерны проектирования".

#проектирование
Раньше уже писал примерно о том, что описано во введении, потому — напоминания.
Forwarded from kamyshev.code
​​Проектирование

Полезно понимать, что такое паттерны проектирования.

Паттерн проектирования — это часто встречающееся решение определённой проблемы при проектировании программ. Важно понимать, что это не кусок кода, не библиотека. Это подход к решению проблемы. Реализация одного и того же паттерна в двух разных приложения может сильно отличаться.

Возникает логичный вопрос, зачем изучать паттерны? Три причины:
+ Проверенные решения. Если кто-то уже решил проблему, то не нужно городить свой велосипед.
+ Стандартизация кода. Другим людям, знающим паттерны, сразу понятно, что написано.
+ Общий программистский словарь. Быстрее сказать коллеге: "Да зафигач сюда адаптер и не парь мозг!", чем "Ну ты сделай класс, который будет превращать интерфейс вот этой штуки в такой, который подходит вот этой штуке."

Ну и последнее. Не нужно бездумно использовать весь перечень паттернов проектирование. Лучше прочитать, осознать и отложить. Потом начать подмечать в коде места, где один из шаблонов смотрелся бы хорошо. И только спустя время начать их применять. Вдумчиво и осторожно.

#проектирование
Forwarded from kamyshev.code
​​Проектирование

Для удобства высоколобые мужи разделили паттерны проектирования на три типа:

1. Порождающие. Они заведуют созданием объектов хитрыми способами. Помогают избегать лишних зависимостей.

2. Структурные. Существуют для построения хитрых связей между объектами.

3. Поведенческие. Помогают объектам общаться между собой, не создавая дополнительных связей.

Наверное, это классификация — не самое полезное, что нужно знать о проектировании ПО. Но для упорядочивания в голове информации о шаблонах проектирования сгодится.

#проектирование
Forwarded from kamyshev.code
​​Собрал размазанный по каналу конспект "Чистой архитектуры" в один пост.

Чистая архитектура | Конспект книги Дядюшки Боба

#чистая_архитектура #конспект
Глубокий JS

JS используется повсеместно. Бытует мнение, что это простой язык. На самом деле, это не так. В результате получаются тонны отвратительного нечитаемого и полного багов кода.

Чтобы рассказывать о скрытых стороных JS, мы с камрадом @UncleSeneca завели канал — @deep_js

Будем рассказывать там о стадартной библиотеке, принятых подходах и инструментах.

#общие_знания
​​Закончить проект сложно

Большая часть проекта делается легко. Это интересно и весело команде разработки, все проблемы быстро решаются, а код получается блестящим и поддерживаемым.

Потом подкарадывается конец и все ломается. В код добавляются десятки каких-то костылей, генерируются баги и вообще проект явно начинает дурно пахнуть.

Сегодня утром коллега скинул в рабочий чатик ссылку на замечательную заметку "Про незаканчивание". В ней говорится, что с этой ситуацией нужно бороться менеджменту, что безусловно, отличная идея. Но и разработчики должны знать о проблеме и искать пути решения.

#сделывание