Тоесть тру ФП:Да это процедурное программирование в чистом виде =)
accounting.tax=calculate_tax(accounting.profits);
Это фейспалм. Рекомендую почитать на досуге en.wikipedia.org/...nal_programming
Человек просто еще не понял о чем вы вообще тут =)))
На самом деле он толстый троль...
Ну если это реализовать на ФП, то будет просто пачка функций, или одна функция со свитчем. А учитывая что все функции будут работать с timestamp... то cohesion очевиден, разве нет? ;) ООП — это о данных и поведении, а в случае с датами функции — это поведение, а timestamp — данные.
Я работал в успешном проекте на C# с 6 млн строк (~300Mb *.cs файлов, без ресурсов и прочего). Вон винда и другие продукты МСа нормально поживают с миллионами строк кода. Я по прежнему думаю что проблема не в OOP, а в том как применяют...
Я так понимаю автор ожидал что мы поможем отстоять процедурное программирование — другими словами гoвнокод на ООП языках. Настоящий ООП кодерок должен понимать почему метод на 100 строк это плохо, и что такое coupling и cohesion.
А по поводу ФП: один друг подсказал тему — реализуйте на ФП класс Date или DateTime =) Интересно на это посмотреть...
так жигули ж гавно — чего вы кодерков позорите =) Кодерки должны ездить на тачке минимум за 20к...
В Киеве легко на такую заработать — ну его в ж... ваш Львов =)
Вы о чем? Я например DDD знаю, а о DOD первый раз слышу =)
ООП надо иметь использовать. 95% кодерков не знают ООП и лепят шопопало
Это что за лол метод на 110 строк? github.com/...r/pdo/query.php
Рекомендую начать с open-source. На Гитхабе (github.com) достаточно много толковых проектов на пхп. Например Wordpress — одна из самых известных CMS’ок. Подробнее на википедии ru.wikipedia.org/wiki/WordPress
Код лежит здесь: github.com/...Press/WordPress
Попробуйте настроить веб сервер и запустить Wordpress на локальной машине, либо еще лучше на виртуалке. Потом можно попробовать поредактировать код и посмотреть что из этого получается.
Кодерки, вы вместо критики девушки лучше бы фреймворк новый выучили.
Лика, доу — сборище троллей, я вам советую удалить тему и не создавать впредь подобных.
зато я узнал об ограничении сишарпа — cannot assign ’lambda expression’ to anonymous type property. Т.е. нельзя вернуть анонимный объект с анонимной функцией ;)
Как я понял, это аналог Extension Method в сишарпе
это просто функция (метод), который принимает функцию и возвращает функцию. Принимаемая функция — Func<dynamic> fact — имеет ноль аргументов и возвращает динамический объект. Результат функция Invert — это функция, которая позволит вычислить «перевернутый» объект (объект в котором Left и Right поменяны местами). Декларативный стиль — вычисление не происходит, просто возвращается функция.
Это я на днях пытался сишарп абьюзить — полную версию кода можно глянуть на github.com/...onCsharpFPStyle
Ну конечно от 7000 грн, если рассматривать однокомнатные площадью от 60 метров на Печерске и только с мраморными полами... И обязательно сравнить с фанерным домом в штатах гденить в 50км от city.
Давайте по честному — сравним
Интересно глянуть, как на джаве будет выглядеть подобный код:
public static Func<dynamic> Invert(this Func<dynamic> fact)
{
return () => new { Left = fact().Right, Right = fact().Left };
}
Я думаю в из >1 человека формальный код ревью поможет решить проблемы с дублированием кода. Ну либо можно выделить роль «архитектора» (хотя это не по Кенту Беку), который будет делать ревью и принимать архитектурные решения по ходу написания кода.
Ну смотря что подразумевается под архитектурой. Например вы скорее всего сразу определитесь на каком языке и платформе вы будете писать код, вы заранее знаете у вас веб приложение, или десктоп, или облачное, вы представляете какую базу данных использовать и т.д. — это ведь является частью архитектуры? =) Насколько я понял Кента — он подразумевает что все разработчики в вашей команде имеют большой опыт (true seniors) и в таком случае можно следовать red-green-refactor и получить нормальный код, иначе скорее всего результат будет не очень хорошим без архитектурных ограничений =)
Но по идее в процессе написания кода через тесты будет проявляться доменная модель и «слои». Ведь регистрация пользователя или поиск товара в конце концов вас приведет к одному и тому же — неким domain objects, некому persistence layer’у, некому представлению всего этого на экране. Но по своему опыту скажу что в последнее время я часто писал тесты после кода, ибо при написании системы from scratch часто надо проверить идею, или даже несколько идей одновременно и выбрать лучшую, а тесты могут замедлять эту проверку, особенно когда Assert написать сложнее, чем глянуть в базу, или в файл, или в консоль
Вы только упускаете что в любой момент может появиться новая технология, которая увеличит производительность процессоров на порядки. Например вместо электронов и pn переходов будут использоваться жесткое электромагнитное излучение и т.п. Либо будет прорыв с квантовым компьютером или еще с чем-то. На самом деле мы можем даже не догадываться в чем будет заключаться следующий скачек в вычислительной технике