Магия
Поведение системы должно быть предсказумым. И чем проще сказать как поведет себя система в той или иной ситуации просто посмотрев на ее код, тем лучше.
Есть два хороших маркера понятности системы:
+ Отсутствие внутреннего состояния. Если функция (класс, модуль) в работе основывается только на принятые параметры, его не только легко тестировать, но и проще понимать.
+ Разделение чтения и записи. Функция не должна возвращать что-то, если она изменяет внешний мир. И напротив, если функция что-то возвращает, то она не может мутировать ничего.
Пример неочевидного поведения — некотрые методы регулярных выражений в JS.
#архитектура
Поведение системы должно быть предсказумым. И чем проще сказать как поведет себя система в той или иной ситуации просто посмотрев на ее код, тем лучше.
Есть два хороших маркера понятности системы:
+ Отсутствие внутреннего состояния. Если функция (класс, модуль) в работе основывается только на принятые параметры, его не только легко тестировать, но и проще понимать.
+ Разделение чтения и записи. Функция не должна возвращать что-то, если она изменяет внешний мир. И напротив, если функция что-то возвращает, то она не может мутировать ничего.
Пример неочевидного поведения — некотрые методы регулярных выражений в JS.
#архитектура
ФП
Функциональное программирование помогает избежать магического поведения системы.
+ Если все функции чистые, то они никак не могут иметь внутреннего состояния и всегда зависят только от своих параметров.
+ Если все структуры данных иммутабельны, то невозможно написать функцию изменяющую какие-то данные.
Функциональные подходы применимы почти к любой системе и всегда они повышают ее надежность.
#архитектура
Функциональное программирование помогает избежать магического поведения системы.
+ Если все функции чистые, то они никак не могут иметь внутреннего состояния и всегда зависят только от своих параметров.
+ Если все структуры данных иммутабельны, то невозможно написать функцию изменяющую какие-то данные.
Функциональные подходы применимы почти к любой системе и всегда они повышают ее надежность.
#архитектура
Ещё один язык
Попробовал ReasonML. Это такое расширение OCaml, которое компилируется в JavaScript. Язык строго статически типизированный, как я люблю.
Интересно, что код на нем работает быстрее, чем JS за счёт использования более оптимальных структур данных.
В целом, код писать весело, язык приятный. Но его экзотичность, малое количество библиотек и слабый тулинг не дают насладиться в полной мере. Стоит попробовать для расширения кругозора.
Хорошая книга на тему — Exploring ReasonML
and functional programming.
#языки
Попробовал ReasonML. Это такое расширение OCaml, которое компилируется в JavaScript. Язык строго статически типизированный, как я люблю.
Интересно, что код на нем работает быстрее, чем JS за счёт использования более оптимальных структур данных.
В целом, код писать весело, язык приятный. Но его экзотичность, малое количество библиотек и слабый тулинг не дают насладиться в полной мере. Стоит попробовать для расширения кругозора.
Хорошая книга на тему — Exploring ReasonML
and functional programming.
#языки
Как начать
В разработке есть порочный круг: не берут на работу, потому что, нет опыта, потому что, не берут на работу. Есть два способа его разорвать:
1. Много читать, искать людей готовых помочь, делать свои проекты.
2. Купить онлайн-курс.
Сначала о втором.
Свое время и нервы можно купить за деньги. Но важно отфильтровать стремные варианты.
Хороший онлайн курс дает не только теоретические знания о предмете, куда важнее возможность набраться опыта под присмотром опытного программиста, сделать парочку проектов.
SkillFactory делают хорошие курсы. 15 апреля у них стартует программа Курс по Python для веб-разработки полного цикла. Отличный способ ворваться в программирование без боли и страданий. Самое крутое, что после окончания курса вы получаете план развития, чтобы расти как разработчик.
#как_начать #партнерский_материал
В разработке есть порочный круг: не берут на работу, потому что, нет опыта, потому что, не берут на работу. Есть два способа его разорвать:
1. Много читать, искать людей готовых помочь, делать свои проекты.
2. Купить онлайн-курс.
Сначала о втором.
Свое время и нервы можно купить за деньги. Но важно отфильтровать стремные варианты.
Хороший онлайн курс дает не только теоретические знания о предмете, куда важнее возможность набраться опыта под присмотром опытного программиста, сделать парочку проектов.
SkillFactory делают хорошие курсы. 15 апреля у них стартует программа Курс по Python для веб-разработки полного цикла. Отличный способ ворваться в программирование без боли и страданий. Самое крутое, что после окончания курса вы получаете план развития, чтобы расти как разработчик.
#как_начать #партнерский_материал
Как начать
Другой вариант разорвать порочный круг — найти умного ментора, много читать и делать свои проекты.
Ментора можно найти на сходках локальных сообществ, в профильных чатах или в Твиттере. Этот же человек подскажет какие книжки читать и какие проекты делать.
Но если ментора найти не получается — нужно читать все, писать программки, которые решают маленькие локальные боли, и со временем придет понимание, что вокруг происходит, тогда можно идти на стажировку в какую-нибудь компанию. После стажтировки обычно много проще найти постоянную работу.
Список компаний, которые хорошо относятся к стажерам и джуниорам
#как_начать
Другой вариант разорвать порочный круг — найти умного ментора, много читать и делать свои проекты.
Ментора можно найти на сходках локальных сообществ, в профильных чатах или в Твиттере. Этот же человек подскажет какие книжки читать и какие проекты делать.
Но если ментора найти не получается — нужно читать все, писать программки, которые решают маленькие локальные боли, и со временем придет понимание, что вокруг происходит, тогда можно идти на стажировку в какую-нибудь компанию. После стажтировки обычно много проще найти постоянную работу.
Список компаний, которые хорошо относятся к стажерам и джуниорам
#как_начать