Наставление молодым
От: sharpman Россия  
Дата: 15.03.20 01:31
Оценка: 18 (2) +1 :))) :))) :))) :))
Из каждого утюга сейчас можно услышать про аджаил и как надо быстро-быстро (х.як х.як) в продакшен. Для этого и облака подтянули, и девопс.
То есть натуральный конвейер для скручивания одних фрейморков с другими, с соответствующим оверхедом из-за лишних фич в каждом фрейморке и излишним гемороем по спариванию интерфейсов

Все это прекрасно вписывается в мир индустриальных цепочек производства и впаривания МВП шустрыми маркетологами лоховатым бузинесменам и бузинесвуменам

При этом старое поколение айтишников, которое знает, как еще можно по-другому, постепенно уходит, а новое поколение "яблочников", "амазонщиков" и "гугловцев" и прочих "индиго" чаще, чем нет, мыслят строго в категориях хайпа и сектанского копирования "образцов"

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

Вопрос к могиканам: какие действия в разработке вы рекомендуете, в противовес "современным" подходам?

Ведь ранее трава зеленее была однозначно, и интерфейсы статичнее... Излейте душу, перед тем, как оставить этот грешный айтимир! Аминь
.

Пессимисты говорят, что хуже быть не может,
а оптимисты всегда уверены, что — может!

.

http://zavtra.ru/upl/15259/alarge/pic_71100add09a.jpg
Отредактировано 15.03.2020 1:35 sharpman . Предыдущая версия .
Re: Наставление молодым
От: kov_serg Россия  
Дата: 15.03.20 02:24
Оценка: 21 (2) +3
Здравствуйте, sharpman, Вы писали:

S>Из каждого утюга сейчас можно услышать про аджаил и как надо быстро-быстро (х.як х.як) в продакшен. Для этого и облака подтянули, и девопс.

S>То есть натуральный конвейер для скручивания одних фрейморков с другими, с соответствующим оверхедом из-за лишних фич в каждом фрейморке и излишним гемороем по спариванию интерфейсов

S>Все это прекрасно вписывается в мир индустриальных цепочек производства и впаривания МВП шустрыми маркетологами лоховатым бузинесменам и бузинесвуменам


S>При этом старое поколение айтишников, которое знает, как еще можно по-другому, постепенно уходит, а новое поколение "яблочников", "амазонщиков" и "гугловцев" и прочих "индиго" чаще, чем нет, мыслят строго в категориях хайпа и сектанского копирования "образцов"


S>Вот перед тем, как сомкнуться веки последнего из могикан, хочется оставить миру напоминание о том, что есть хорошо и что есть плохо и что вообще есть


S>Вопрос к могиканам: какие действия в разработке вы рекомендуете, в противовес "современным" подходам?


S>Ведь ранее трава зеленее была однозначно, и интерфейсы статичнее... Излейте душу, перед тем, как оставить этот грешный айтимир! Аминь


Срочно напишите книгу как надо в противовес "современным" подходам. И обязательно с примерами. Возможно через поколение или два она пригодиться.
Re[2]: Наставление молодым
От: Codealot  
Дата: 15.03.20 02:31
Оценка: -1
Здравствуйте, kov_serg, Вы писали:

_>Срочно напишите книгу как надо в противовес "современным" подходам. И обязательно с примерами. Возможно через поколение или два она пригодиться.


Как раз на красивый памятник хватит.
Re: Наставление молодым
От: velkin Россия  
Дата: 15.03.20 02:37
Оценка: 1 (1) +3
Здравствуйте, sharpman, Вы писали:

S>Из каждого утюга сейчас можно услышать про аджаил и как надо быстро-быстро (х.як х.як) в продакшен. Для этого и облака подтянули, и девопс.


Читал книги про различные гибкие методологии, там авторы рассказывали как они к этому пришли. Сначала они делали всё "по учебнику", а потом у них в голове щёлкнуло, что они могут делать всё быстрее, так как знают все процессы разработки от начала и до конца. Вот на этих моментах мне всегда было интересно, а что делать тем, кто ещё не умеет создавать программы так сказать классическим способом.

Для примера TDD, во время разработки мешает делать изменения в программе. Методологи очень любят всякие метафоры, вроде вонючий код. Ну так я тоже могу придумать не мало подобного трешака — использовать TDD это всё равно, что залить программу в бетон. То есть тесты нужны, но умение создавать их до программы доступно лишь профессионалам у которых низкий коэффицент выбора неправильных решений, которые придётся изменить переписав код.

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

Можно долго обсуждать каждый пункт, но мой вывод из всех прочитанных книг в том, что многие из гибких методологий могут использовать только профессионалы достигшие определённого уровня развития, работающие в одиночку и понимающие, что они делают. Эффективность будет достигаться не за счёт гибких методологий как таковых, а за счёт профессионализма.

В целом же "проблема утопающих дело рук самих утопающих", "каждый дрочит как он хочет".
Re[2]: Наставление молодым
От: velkin Россия  
Дата: 15.03.20 02:39
Оценка: +2
Здравствуйте, kov_serg, Вы писали:

_>Срочно напишите книгу как надо в противовес "современным" подходам. И обязательно с примерами. Возможно через поколение или два она пригодиться.


Она может пригодиться даже самому автору.
Re[2]: Наставление молодым
От: sharpman Россия  
Дата: 15.03.20 03:01
Оценка: 3 (1)
Здравствуйте, velkin, Вы писали:

V>Можно долго обсуждать каждый пункт, но мой вывод из всех прочитанных книг в том, что многие из гибких методологий могут использовать только профессионалы достигшие определённого уровня развития, работающие в одиночку и понимающие, что они делают. Эффективность будет достигаться не за счёт гибких методологий как таковых, а за счёт профессионализма.


Именно. Чтобы делать ТДД, нужно _уже_ знать проблематику. А предлагают ТДД использовать на зеленых проектах и еще зеленым соплякам...

V>"каждый дрочит как он хочет".


Это теперь берут под контроль с соответствующим эксгибиционизмом на код ревью и ретроспективе
.

Пессимисты говорят, что хуже быть не может,
а оптимисты всегда уверены, что — может!

.

http://zavtra.ru/upl/15259/alarge/pic_71100add09a.jpg
Отредактировано 15.03.2020 3:07 sharpman . Предыдущая версия .
Re: Наставление молодым
От: LaptevVV Россия  
Дата: 15.03.20 03:50
Оценка: 24 (3) +1
S>Вопрос к могиканам: какие действия в разработке вы рекомендуете, в противовес "современным" подходам?
Думать.
Это — ВСЕМ. Независимо от должности и "веса в команде".
Анализировать: требования, задачу, предметную область.
Остальное и так нормально.
Мы в 80-е тоже делали агиле (или, прости господи, скрам? ), только без менеджеров, а сами.
И не каждую неделю, а так примерно раз в месяц.
И код ревью — но только по желанию ревьюироемого.
Подходит и говорит: чего-то я запутался.
Садишься и начинается парное экстремальное программирование.
Через полчаса-час-полтора код структурирован и работает.
Чего не было — так это тдд.
Но его и сейчас далеко не каждая контора применяет.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Наставление молодым
От: Qulac Россия  
Дата: 15.03.20 09:16
Оценка: +1
Здравствуйте, sharpman, Вы писали:

S>Из каждого утюга сейчас можно услышать про аджаил и как надо быстро-быстро (х.як х.як) в продакшен. Для этого и облака подтянули, и девопс.

S>То есть натуральный конвейер для скручивания одних фрейморков с другими, с соответствующим оверхедом из-за лишних фич в каждом фрейморке и излишним гемороем по спариванию интерфейсов

S>Все это прекрасно вписывается в мир индустриальных цепочек производства и впаривания МВП шустрыми маркетологами лоховатым бузинесменам и бузинесвуменам


S>При этом старое поколение айтишников, которое знает, как еще можно по-другому, постепенно уходит, а новое поколение "яблочников", "амазонщиков" и "гугловцев" и прочих "индиго" чаще, чем нет, мыслят строго в категориях хайпа и сектанского копирования "образцов"


S>Вот перед тем, как сомкнуться веки последнего из могикан, хочется оставить миру напоминание о том, что есть хорошо и что есть плохо и что вообще есть


S>Вопрос к могиканам: какие действия в разработке вы рекомендуете, в противовес "современным" подходам?


S>Ведь ранее трава зеленее была однозначно, и интерфейсы статичнее... Излейте душу, перед тем, как оставить этот грешный айтимир! Аминь


Не моя мысль, кто-то вроде уже это высказывал, что процесс разработки стихийно или намеренно подстраивается под взаимоотношения с клиентом,а при долгом сотрудничестве даже определенный тип людей подбирается. По моей практике так и есть. Так что аджаил он не только внутри, но и снаружи и не каждому клиенту он подойдет.
Программа – это мысли спрессованные в код
Re[2]: Наставление молодым
От: sharpman Россия  
Дата: 15.03.20 13:46
Оценка: +3
Здравствуйте, LaptevVV, Вы писали:

LVV>Думать.


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

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

Пессимисты говорят, что хуже быть не может,
а оптимисты всегда уверены, что — может!

.

http://zavtra.ru/upl/15259/alarge/pic_71100add09a.jpg
Re[2]: Наставление молодым
От: sharpman Россия  
Дата: 15.03.20 13:51
Оценка:
Здравствуйте, Qulac, Вы писали:

Q>По моей практике так и есть. Так что аджаил он не только внутри, но и снаружи и не каждому клиенту он подойдет.


И хвост виляет собакой. "Клиент хочет" как погоняло сраммастера. В конечном итоге, обычно, вместо хоть немного продуманной архитектуры — полный JIRAдец
.

Пессимисты говорят, что хуже быть не может,
а оптимисты всегда уверены, что — может!

.

http://zavtra.ru/upl/15259/alarge/pic_71100add09a.jpg
Отредактировано 15.03.2020 13:54 sharpman . Предыдущая версия .
Re: Наставление молодым
От: mgu  
Дата: 17.03.20 00:28
Оценка:
Здравствуйте, sharpman, Вы писали:

S>Вопрос к могиканам: какие действия в разработке вы рекомендуете, в противовес "современным" подходам?


Так ведь изменилась цель написания программ: раньше добавлялись новые возможности, теперь же выпускаются навязываются [job] security updates. Смысл "современных" подходов как раз в переливании из пустого в порожнее, в доении клиента. Когда вымрут могикане, появится "новая" каскадная методология, но без техзадания, типа "сделайте мне клон ..." или "переведите то, что есть, на ...".
Re[2]: Наставление молодым
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 17.03.20 06:26
Оценка:
Здравствуйте, velkin, Вы писали:

V>Для примера TDD, во время разработки мешает делать изменения в программе. Методологи очень любят всякие метафоры, вроде вонючий код. Ну так я тоже могу придумать не мало подобного трешака — использовать TDD это всё равно, что залить программу в бетон. То есть тесты нужны, но умение создавать их до программы доступно лишь профессионалам у которых низкий коэффицент выбора неправильных решений, которые придётся изменить переписав код.


...

Бетон по любому долбить придется. Поэтому купите себе, в хозяйство, нормальный отбойный молоток.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re: Наставление молодым
От: 0x7be СССР  
Дата: 17.03.20 08:22
Оценка:
Здравствуйте, sharpman, Вы писали:

S>Вопрос к могиканам: какие действия в разработке вы рекомендуете, в противовес "современным" подходам?

S>Ведь ранее трава зеленее была однозначно, и интерфейсы статичнее... Излейте душу, перед тем, как оставить этот грешный айтимир! Аминь
Да-да-да, помню помню эту зелёную траву.
На моей первой работе не было таск-трекера и системы контроля версий.
Зачем все эти костыли для настоящих ковбоев?
Re[2]: Наставление молодым
От: Codealot  
Дата: 17.03.20 18:11
Оценка:
Здравствуйте, 0x7be, Вы писали:

0>На моей первой работе не было таск-трекера и системы контроля версий.

0>Зачем все эти костыли для настоящих ковбоев?

Ты думаешь, сейчас таких мало?
Re: Наставление молодым
От: L_G Россия  
Дата: 17.03.20 19:03
Оценка:
S>Вопрос к могиканам: какие действия в разработке вы рекомендуете, в противовес "современным" подходам?

Думается, самый важный принцип — это KISS (Keep it simple, ...).
Но сам по себе он не очень ясен (слишком много кардинально РАЗНЫХ представлений о том, что есть "simple" и как его нужно "keep").

Ученым известен принцип "бритвы Оккама": "не создавать лишних сущностей без необходимости". Но программисты и системные архитекторы только этим и занимаются — создают сущности по необходимости.

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

Описать все возможные "порядки" и их относительные "высоты" вряд ли возможно, но для практики достаточно интуитивного понимания.

Для наглядности несколько очевидных примеров:
* (новое) поле в (существующей) таблице БД — ниже порядком, чем (новая) таблица в БД
* (новая) папка для файлов исходников в (существующем) проекте — ниже порядком, чем (новый) проект
* (новая) сущность на любом уровне иерархии ниже порядком, чем (новый) уровень иерархии сущностей

Кажется, что современные программисты создают сущности самых высоких порядков (и сами эти порядки) абсолютно без напряга.
Компьютеры быстрые, справятся со всем.
К тому же, сущность более высокого порядка можно или продать дороже, или себя как её автора показать чуть получше (или хотя бы себе самому вообразить).
То, что и себестоимость этой сущности будет выше, оказывается неважным. Получается эффект, похожий на надувание пузыря.

А, может быть, всё проще: современные программисты недостаточно ленивы? (Или больше любят абстрактно-красивый и "правильный" код писать, чем задачи быстро решать?)
Re[2]: Наставление молодым
От: landerhigh Пират http://www.blinnov.com
Дата: 18.03.20 15:12
Оценка: +1
Здравствуйте, velkin, Вы писали:

V>Для примера TDD, во время разработки мешает делать изменения в программе.


Странно. TDD, который мне доводилось использовать, серьезно помогает делать изменения в программе.
www.blinnov.com
Re: Наставление молодым
От: vsb Казахстан  
Дата: 18.03.20 20:01
Оценка:
Я, конечно, пока сам молодой, но всё же напишу, может самому через 15 лет интересно будет прочитать.

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

В качестве ЯП Java. Долго пробовал Kotlin, он хорош, но я немного разочаровался в векторе его развития, они начали, как better Java, что меня и подкупило, а сейчас они уже пошли в какую-то свою степь, Kotlin Native, corutines и прочее, мне всё это не нужно от слова совсем, в общем фокус у них ушёл с моих нужд, поэтому я вернулся назад к Java. Но он всё равно хорош и я его держу в загашнике.

В качестве платформы Tomcat. Раньше часто писал консольные приложения, в последнее время вообщё всё тупо веб-приложением делаю. Не скажу, что доволен томкатом, подозреваю, что коммерческие апп-серверы круче или может даже что-то вроде жбосса, в первую очередь хотелось бы мощного дэшборда, зачастую проблемы с мониторингом приложения. Но в целом жить можно. Зато жрёт мало и запускается относительно быстро.

В качестве библиотек: либо голые сервлеты, если совсем мало нужно, либо Spring MVC. Если к фронтэнду требований больших нет, то делаю серверный рендеринг с помощью Thymeleaf, а так Angular планирую использовать, но пока ещё таких проектов не было. Из интересного пробовал Wicket, два приложения на нём написал, но не очень доволен. Хотя тут сложный вопрос, для некоторых видов приложений он будет очень хорош, там, где куча состояния на сервере в сессии удобно хранится и где очень нужна компонентная модель. Это его две сильнейшие стороны.

В качестве доступа к базе MyBatis, как универсальное решение. Для простых случаев голый JDBC, для некоторых можно Hibernate, но в целом это для совсем уж дубового CRUD. Но Hibernate надо относительно хорошо знать, так просто подключить, пролистать туториал и пойти использовать не выйдет, скорей всего получится плохо. MyBatis мне не очень нравится, но ничего лучше я не нашёл. Хотелось бы более низкоуровневое решение.

Не нашёл подходящую библиотеку для генерации бинов, когда-нибудь я её таки напишу. Что-то вроде Google AutoValue но чуть по-другому. В целом мне нужна одна простая фича: чтобы поля могли быть неинициализированными и кидать исключение при вызове геттера. Ну и, естественно, чтобы оно всё работало со скоростью вручную написанного кода.

Что я пробовал и не понравилось:

Google Guava — иммутабельные коллекции. В теории штука хорошая, на практике вот это слово Immutable всё портит. ImmutableList l = ImmutableList.of(1, 2, 3). Очень длинно. Им бы сделать ImList и всё. Да, вот только из-за именования и не пользуюсь. Ну и ещё у них очень странная идея того, что null хранить в коллекции нельзя и они это не разрешают. А я порой храню и мне удобно.

@Nullable/@NotNull аннотации. Кстати и в котлине система типов с этими non-null типами мне не нравится. У меня никогда не было проблем с NullPointerException-ами, поэтому мне далека проблема, которую они пытаются решать, а вот неудобства от того, что надо ублажать компилятор, присутствуют повсеместно. Ну и, конечно, неразмеченные этими аннотациями примерно все Java-библиотеки. Почему не делают инструмент, который анализируя байткод сам сгенерирует все эти аннотации, я до сих пор не понимаю, задача-то тривиальная. Вон ребята с TypeScript натянули систему типов на JavaScript и не постремались сгенерить кучу аннотаций для существующих JavaScript-библиотек. Ситуация очень похожая.
Отредактировано 18.03.2020 20:04 vsb . Предыдущая версия .
Re[2]: Наставление молодым
От: sharpman Россия  
Дата: 19.03.20 19:44
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>


С тайпскриптом не всё так просто. Это же всё таки микрософт — хлебом не корми, дай затянуть в свою секту

Теперь там уже свой язык в языке — Pick and Exclude, например
.

Пессимисты говорят, что хуже быть не может,
а оптимисты всегда уверены, что — может!

.

http://zavtra.ru/upl/15259/alarge/pic_71100add09a.jpg
Re[2]: Наставление молодым
От: sharpman Россия  
Дата: 19.03.20 19:49
Оценка: +1
Здравствуйте, L_G, Вы писали:

L_G>А, может быть, всё проще: современные программисты недостаточно ленивы? (Или больше любят абстрактно-красивый и "правильный" код писать, чем задачи быстро решать?)


Скорее склонны к сектанскому мышлению и карго-культу — если Фейсбук так делает, значит это хорошо

Раньше не было интернета, каждый думал сам. А теперь, наоборот, слишком лень думать — лучше на стаковерфлоу спросить и пока ждешь ответа на рсдн потрепаться
.

Пессимисты говорят, что хуже быть не может,
а оптимисты всегда уверены, что — может!

.

http://zavtra.ru/upl/15259/alarge/pic_71100add09a.jpg
Re[3]: Наставление молодым
От: sharpman Россия  
Дата: 19.03.20 22:48
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Странно. TDD, который мне доводилось использовать, серьезно помогает делать изменения в программе.


Ты, наверное, путаешь с юнит-тестами
.

Пессимисты говорят, что хуже быть не может,
а оптимисты всегда уверены, что — может!

.

http://zavtra.ru/upl/15259/alarge/pic_71100add09a.jpg
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.