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

https://kamyshev.me
Download Telegram
​​Наследование

Как-то уже писал, что не люблю наследование и считаю его ключевой проблемой объектно-ориентированного дизайна. В субботу ходил на митап, в одном из докладов сравнивалось создание бибилиотеки компонентов основанной на наследовании и основанной на композиции. Ожидаемо, композиция оказалсь более гибкой.

Посмотрите презентацию, в ней очень наглядные примеры.

#ссылка
​​Современный веб пронизан фреймворками. Это не плохо! Проекты запускается быстро, а поддерживать их легко. Но иногда стоит избегать использования сторонних решений.

Проникся этой идеей и переписал свой сайт с Next.js (обвязка вокруг React) на чистый JS/CSS/HTML. Стало быстро, очень быстро. Новый сайт задизайнил Дима Журавлев.

Мой опыт — Как сделать сайт легким и быстрым без проблем

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

Поведение системы должно быть предсказумым. И чем проще сказать как поведет себя система в той или иной ситуации просто посмотрев на ее код, тем лучше.

Есть два хороших маркера понятности системы:
+ Отсутствие внутреннего состояния. Если функция (класс, модуль) в работе основывается только на принятые параметры, его не только легко тестировать, но и проще понимать.
+ Разделение чтения и записи. Функция не должна возвращать что-то, если она изменяет внешний мир. И напротив, если функция что-то возвращает, то она не может мутировать ничего.

Пример неочевидного поведения — некотрые методы регулярных выражений в JS.

#архитектура
ФП

Функциональное программирование помогает избежать магического поведения системы.

+ Если все функции чистые, то они никак не могут иметь внутреннего состояния и всегда зависят только от своих параметров.
+ Если все структуры данных иммутабельны, то невозможно написать функцию изменяющую какие-то данные.

Функциональные подходы применимы почти к любой системе и всегда они повышают ее надежность.

#архитектура
​​Ещё один язык

Попробовал ReasonML. Это такое расширение OCaml, которое компилируется в JavaScript. Язык строго статически типизированный, как я люблю.

Интересно, что код на нем работает быстрее, чем JS за счёт использования более оптимальных структур данных.

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

Хорошая книга на тему — Exploring ReasonML
and functional programming
.

#языки
​​Расти как разработчик

Для людей, которые только пришли в индустрию большая проблема расти в ней. Это проблема, у нее нет решения, которое бы подходило всем.

Недавно на pitercss Александра Шинкевич рассказала свой рецепт.
+ Слайды
+ Запись

#рост
​​Как начать

В разработке есть порочный круг: не берут на работу, потому что, нет опыта, потому что, не берут на работу. Есть два способа его разорвать:
1. Много читать, искать людей готовых помочь, делать свои проекты.
2. Купить онлайн-курс.

Сначала о втором.

Свое время и нервы можно купить за деньги. Но важно отфильтровать стремные варианты.

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

SkillFactory делают хорошие курсы. 15 апреля у них стартует программа Курс по Python для веб-разработки полного цикла. Отличный способ ворваться в программирование без боли и страданий. Самое крутое, что после окончания курса вы получаете план развития, чтобы расти как разработчик.

#как_начать #партнерский_материал
Как начать

Другой вариант разорвать порочный круг — найти умного ментора, много читать и делать свои проекты.

Ментора можно найти на сходках локальных сообществ, в профильных чатах или в Твиттере. Этот же человек подскажет какие книжки читать и какие проекты делать.

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

Список компаний, которые хорошо относятся к стажерам и джуниорам

#как_начать