Функциональный TypeScript

functional typescript

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

И сделаем мы это, следуя следующим трем пунктам:

  • Используем простые функции вместо простых значений
  • Моделируем изменение данных как конвейер
  • Извлечем обобщенные функции

Итак, начнем-с!…

Оценка ПО: полная чушь

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

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

Функтор в JavaScript

Рассмотрим следующий код:

function plus1(value) {  
    return value + 1  
}  

Это простая функция, которая получает числовое значение и добавляет к нему единицу. Аналогичным образом мы можем сделать функцию plus2. Мы будем позже использовать эти функции:

function plus2(value) {  
    return value + 2  
}  

Или мы можем написать обобщенную функцию, чтоб использовать любую из этих функций по необходимости:

function F(value, fn) {  
    return fn(value)  
}
F(1, plus1) ==>> 2

Эта функция будет работать хорошо, пока будем ей передавать целочисленное значение.…

Области видимости переменных в JavaScript и их подводные камни

В этом посте мы разберемся с областями видимости в JavaScript. Обратим внимание на две вещи, которые могут приводить к проблемам, если вы о них не позаботитесь: область видимости переменных в JavaScript - функции, и они могут быть захвачены в замыкания.

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

Жизненные уроки от бывалого программиста

За три десятилетия программистской деятельности, я усвоил пару-тройку уроков. Ниже несколько самых лакомых.

  • Клиенты знают, чего хотят, только после того, как это увидят это. Я усвоил это на моей первой работе. Клиенты не осознают, что, собственно, необходимо, пока вы им это не покажете. Функциональное прототипирование всегда выигрывает у набора слов.

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

Почему я не работаю за неоплачиваемые сверхурочные и вы не должны

Как программист в США на протяжении 30 лет, я потратил некоторое время, работая больше 40 часов в неделю, что довольно распространено в этой индустрии. И редко, если вообще, получал большую оплату.

Хватит, теперь я нахожу эту идею тошнотворной.

Я не говорю о работе на свой собственный бизнес или работе на стартап или другие бизнес-активности, где дополнительные часы могут быть хорошо оплачеваемые.…

О чем наиболее сожалею как программист

Немного более 20 лет назад, я стоял перед выбором. Моя вторая компания была истощена, когда наш пятилетний проект DeltaGraph для издателя закончился (они хотели переключится на рождающийся интернет). В то время, я уже имел 13 лет опыта как программист, а также около 9 лет опыта как управляющий компанией (в то же время).

Я больше не хотел занимать обе позиции одновременно. Моя первая компания 85-87 не только создала новый тип электронных таблиц, но и сама ее издавала.…

Руководство по именованию переменных

Польза от именования

Программное обеспечение должно быть написано для понимая людьми, поэтому имена переменных должны быть соответствующие. Люди которые разбирают/читают ваш код, для расширения или исправления, должны понять его. Очень часто, имена переменных используют много места и усложняют понимание. Даже инженеры действующие с хороших побуждений, очень часто выбирают имена которые в лучшем случае только очень поверхностно полезны.

Назначение этого документа, помочь инженерам выбрать хорошие имена переменных.…

Разработка через гамак

Ричард Хикки (создатель языка программирования Clojure) провел очень интересный доклад о решении задач под названием «Разработка через гамак». Ричард говорил больше с личной (эмпирической) точки зрения. Это пока не очень признано академично, но вписывается в некоторые исследования в области мозга. Поэтому доклад не особо научный, но в то же время дает достаточно хорошую пищу для размышлений.

[youtube video=»f84n5oFoZBc»]

Выводы:

  • Не бросайтесь сразу программировать.