
Paul
29.06.2017
12:19:32

Aleh
29.06.2017
12:19:58
надо подумать

Paul
29.06.2017
12:20:55
Ну, у пирса числа чёрча определяются как
c₀ = λs. λz. z
c₁ = λs. λz. s z
....
Ну и функция следования, очевидно, scc = λn. λs. λz. s (n s z)

Google

Paul
29.06.2017
12:23:00
ну я считал, что все эти S S S S Z это они и есть
С другой стороны, видел, что на алгтд тоже называют (что неверно), когда на них реализуют зависимые типы там, где их нет (скажем, в том же расте в одной либе на них арифметика на типах построена, чтобы можно было делать Matrix<Three, Two> и пр)

f4rt~
29.06.2017
13:18:12
https://www.youtube.com/watch?v=9zpG_hJsrL8
Чел так интересно начал, вы меня не знаете, но я ненавижу ООП :D
property based testing

Sergey
29.06.2017
13:25:05
property based testing оч клевая и занятная тема

f4rt~
29.06.2017
13:25:36
ну на 1,5 можно смотреть

Sergey
29.06.2017
13:25:37
но оно не особо про "TDD без моков" и ложится хорошо и на ООП и на функциональщину и вообще и то и то это одно и тоже

f4rt~
29.06.2017
13:25:40
сначала много воды

Aleh
29.06.2017
13:26:41
ну property based testing вообще несильно к tdd относится

Sergey
29.06.2017
13:27:01
ну тип да)

f4rt~
29.06.2017
13:28:17
ну он рассматривает tdd как software testing
не в его общем плане

Aleh
29.06.2017
13:28:58
знаменитое понимание tdd как большое число тестов)

Alex
29.06.2017
14:05:29

Google

Hack
29.06.2017
14:05:58
привет всем
подскажите книжку хорошую

f4rt~
29.06.2017
14:06:28
https://oopru.github.io/

Hack
29.06.2017
14:09:26
это ваш сайт чатика ?
скромно

?
29.06.2017
14:10:18
???

Sergei
29.06.2017
14:13:06

?
29.06.2017
16:43:54
https://blogs.msdn.microsoft.com/ericgu/2017/06/22/notdd/

Sergey
29.06.2017
16:50:05
> It takes us longer to write code using TDD
бездоказательное утверждение. Я знаю только про один прецидент когда решили проверить и выходило что с TDD выходит либо сколько же, либо быстрее. Другое дело что психологически испытуемым казалось что дольше.
> Because my design does not have low coupling,
ну да, TDD и говнокод не очень хорошо дружат
> Instead of spending time teaching people TDD, we should instead be spending time teaching them more about design and especially more about refactoring
А, простите, TDD про что?
ну то есть как по мне - человек путает test-first и test driven

val
29.06.2017
16:55:52
Смысл в том что tdd может тоже получить хреновый код и трудноподдерживаемые тесты в довесок, если рефакторинг не твоя сильная сторона

Sergey
29.06.2017
18:39:38
потому если у тебя все плохо с рефакторингом то и от TDD толку мало
TDD - оно не про тесты

val
29.06.2017
18:42:56
Согласен. Refactoring driven тогда

Sergei
29.06.2017
19:11:37

Sergey
29.06.2017
21:15:02
да и в целом, тесты выступают в роли клиентского кода для проектируемой системы. Что бы у каждого модуля был свой клиент. и ты бы просто думал с точки зрения поведения того что ты пишешь а не "тут пропертю а тут методик добавить"

Google

Sergey
29.06.2017
21:16:37
когда неудобно тесты становится писать - можно подумать как сделать что бы было чуть удобнее


Sergei
30.06.2017
17:15:42
Кто то хочет немного троллинга? Из одной статьи "Больше кода, не значит лучше
Существует понятие overengineering, которое описывает желание сделать решение простой по своей сути задачи более масштабным, чем оно того заслуживает в реальности.
Предположим, по условию задачи нам необходимо обойти все файлы в указанной пользователем директории и сложить записанные в них числа. Хоть это задание и предлагается выполнить на объектно-ориентированном языке программирования, нет ничего плохого в решении, написанном в процедурном стиле. Весь код может уместиться буквально в пару десятков строк, так зачем «размазывать» его на нечто большее?
Многие разработчики могут подумать, что подход с написанием классов даже в таком простом случае может показать представителям компании, что кандидат разбирается в основных принципах ООП, а также заботится о дальнейшем сопровождении и развитии кода. На самом же деле зачастую гораздо приятнее видеть, что разработчик может провести грань между «демонстрационным заданием» и «проектом с 10 годами поддержки в будущем».
Не нужно забывать о том, что код тестового задания будет читать человек, у которого, возможно, не так много времени на его доскональное изучение. Краткость — сестра таланта!"


Stepan
30.06.2017
17:18:44
Помню вакансию в ВК, там прямо говорили что если вы думаете что ООП обязательно можете не отправлять резюме)) Потом интересовался, у них там погоду весь бакенд на процедурном ПХП был, по крайней мере в то время
и как бы работает на порядок лучше чем тот же ФБ


Sergei
30.06.2017
17:19:16
Кто то хочет немного троллинга? Из одной статьи "Больше кода, не значит лучше
Существует понятие overengineering, которое описывает желание сделать решение простой по своей сути задачи более масштабным, чем оно того заслуживает в реальности.
Предположим, по условию задачи нам необходимо обойти все файлы в указанной пользователем директории и сложить записанные в них числа. Хоть это задание и предлагается выполнить на объектно-ориентированном языке программирования, нет ничего плохого в решении, написанном в процедурном стиле. Весь код может уместиться буквально в пару десятков строк, так зачем «размазывать» его на нечто большее?
Многие разработчики могут подумать, что подход с написанием классов даже в таком простом случае может показать представителям компании, что кандидат разбирается в основных принципах ООП, а также заботится о дальнейшем сопровождении и развитии кода. На самом же деле зачастую гораздо приятнее видеть, что разработчик может провести грань между «демонстрационным заданием» и «проектом с 10 годами поддержки в будущем».
Не нужно забывать о том, что код тестового задания будет читать человек, у которого, возможно, не так много времени на его доскональное изучение. Краткость — сестра таланта!"
Отличное замечание. ООП - инструмент, а не цель. В первую очередь нужен результат, всё остальное вторично.


Sergei
30.06.2017
17:20:23
p.s. небольшой спойлер, это не троллинг, а наркомания, оттуда же: "Дурным тоном также считается выполнение в одной и той же функции нескольких несвязанных по своей сути вещей. Например, когда функция, читающая число из указанного файла, не только, собственно, читает этот файл, но и прибавляет его к переменной, обозначающей сумму." Прямо противоположно тому что было в первом отрывке. Отсюда https://gmsservices.ru/blog/2017/05/22/dev-task-fails/


Sergei
30.06.2017
17:22:32
p.s. небольшой спойлер, это не троллинг, а наркомания, оттуда же: "Дурным тоном также считается выполнение в одной и той же функции нескольких несвязанных по своей сути вещей. Например, когда функция, читающая число из указанного файла, не только, собственно, читает этот файл, но и прибавляет его к переменной, обозначающей сумму." Прямо противоположно тому что было в первом отрывке. Отсюда https://gmsservices.ru/blog/2017/05/22/dev-task-fails/
По-моему всё как раз очень разумно и непротиворечиво.
1) "красиво" не надо - надо эффективно;
2) "плохо" не надо делать никогда.
Тот же GC сделал для индустрии существенно больше, чем "все эти SOLID" вместе взятые.

Stepan
30.06.2017
17:24:23
С кривыми руками и самый продуманный фреймворк с ООП не поможет, а с ровными можно и процедурно написать расширяемое, продуманное приложение которое будет просто развивать и поддерживать.

Артур Евгеньевич
30.06.2017
18:51:06

Pavel
30.06.2017
18:53:57

Sergei
30.06.2017
19:35:56
Наверное, стоит применять такие же, как и при оценке "с ООП лучше, чем без ООП".
Надёжность кода, простота разработки и поддержки, бизнес-эффект.
В качестве "доказательства" высокой важности GC (автоматического управления памятью) я бы привёл такое наблюдение: системы разработки всякого серверного ПО (java, javascript, php, python, C#, scala, - что там ещё реально применяют?) почти на 100% содержат garbage collector.
При этом "тру ООП" среди них очень мало.
(Да, это всё очень спорно и сомнительно; тем не менее наблюдение имеет место быть)

Admin
ERROR: S client not available

Pavel
30.06.2017
19:42:46
Сравнение теплого с мягким

Google

Sergei
30.06.2017
19:45:48
В общем да.

Astrafox
30.06.2017
19:46:04
/stat@combot

Combot
30.06.2017
19:46:04
combot.org/chat/-1001071233926

Sergei
30.06.2017
19:46:46
Сравнение теплого с мягким
Хотя в разрезе "что выгоднее для бизнеса - система со сборкой мусора, или с ООП" - вполне нормальное сравнение.


Max
30.06.2017
20:16:52
Кто то хочет немного троллинга? Из одной статьи "Больше кода, не значит лучше
Существует понятие overengineering, которое описывает желание сделать решение простой по своей сути задачи более масштабным, чем оно того заслуживает в реальности.
Предположим, по условию задачи нам необходимо обойти все файлы в указанной пользователем директории и сложить записанные в них числа. Хоть это задание и предлагается выполнить на объектно-ориентированном языке программирования, нет ничего плохого в решении, написанном в процедурном стиле. Весь код может уместиться буквально в пару десятков строк, так зачем «размазывать» его на нечто большее?
Многие разработчики могут подумать, что подход с написанием классов даже в таком простом случае может показать представителям компании, что кандидат разбирается в основных принципах ООП, а также заботится о дальнейшем сопровождении и развитии кода. На самом же деле зачастую гораздо приятнее видеть, что разработчик может провести грань между «демонстрационным заданием» и «проектом с 10 годами поддержки в будущем».
Не нужно забывать о том, что код тестового задания будет читать человек, у которого, возможно, не так много времени на его доскональное изучение. Краткость — сестра таланта!"
а почему троллинг? так и есть, чем меньше деталей тебе нужно держать в голове, даже в случае с ооп - минимум абстракций с минимумом кода + максимальное соблюдение принципов и правил
p.s. небольшой спойлер, это не троллинг, а наркомания, оттуда же: "Дурным тоном также считается выполнение в одной и той же функции нескольких несвязанных по своей сути вещей. Например, когда функция, читающая число из указанного файла, не только, собственно, читает этот файл, но и прибавляет его к переменной, обозначающей сумму." Прямо противоположно тому что было в первом отрывке. Отсюда https://gmsservices.ru/blog/2017/05/22/dev-task-fails/
так это нарушение spr епт, который справедлив не только для классов но и для функций и методов


Sergei
30.06.2017
20:19:20


Aleh
30.06.2017
20:20:22
Кто то хочет немного троллинга? Из одной статьи "Больше кода, не значит лучше
Существует понятие overengineering, которое описывает желание сделать решение простой по своей сути задачи более масштабным, чем оно того заслуживает в реальности.
Предположим, по условию задачи нам необходимо обойти все файлы в указанной пользователем директории и сложить записанные в них числа. Хоть это задание и предлагается выполнить на объектно-ориентированном языке программирования, нет ничего плохого в решении, написанном в процедурном стиле. Весь код может уместиться буквально в пару десятков строк, так зачем «размазывать» его на нечто большее?
Многие разработчики могут подумать, что подход с написанием классов даже в таком простом случае может показать представителям компании, что кандидат разбирается в основных принципах ООП, а также заботится о дальнейшем сопровождении и развитии кода. На самом же деле зачастую гораздо приятнее видеть, что разработчик может провести грань между «демонстрационным заданием» и «проектом с 10 годами поддержки в будущем».
Не нужно забывать о том, что код тестового задания будет читать человек, у которого, возможно, не так много времени на его доскональное изучение. Краткость — сестра таланта!"
так типа return directory.findFiles().map(getContent).map(findNumbers).reduce(sum, 0)
когда мне говорят процедурный стиль, я сразу представляю непроходимую лапшу с мутабельным глобальным состоянием. Вот выше это процедурно, оопшно или фпшно?


Max
30.06.2017
20:23:43
вот неплохой пост на счет минимума кода
https://habrahabr.ru/company/ruvds/blog/313836/

Sergei
30.06.2017
20:24:52

Max
30.06.2017
20:25:17
нет

Sergei
30.06.2017
20:25:19
Со своими паттернами, новыми гуру, непонятными аббревиатурами.

Max
30.06.2017
20:25:24
фп или ооп тут вообще не причем)

Sergei
30.06.2017
20:29:57
Для становления парадигмы это не помеха.

Max
30.06.2017
20:33:29
а что здесь?)

Sergei
30.06.2017
20:35:34
Ну если говорить серьёзно - то конечно это не парадигма, и даже не "метод". Скорее - навык, полезное свойство мышления.

Max
30.06.2017
20:36:49
и кстати этот навык еще не плохо форсится изучением других языков

Google

andretshurotshka?❄️кде
01.07.2017
04:31:49

Yumi
01.07.2017
21:11:54

Евгений
01.07.2017
21:12:11

Oleg
02.07.2017
06:29:22
ТРУ АОПЕ ПРОГРОМЕСТЫ
ПРИВЕТ

Sergey
02.07.2017
06:31:50
https://twitter.com/delawen/status/880517810400759808 Егор пошел еще дальше в высказываниях))