JavaScript fwdays conf: Node.js, Performance, Tests, Nuxt.js, DevTools, GraphQL | March 14
×Закрыть

Анонс новой идеологии разработки софта

Уважаемые разработчики!

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

И так, вот мои тезисы:

1) Использование только языков со статической типизацией и сильными статическими гарантиями. То есть это D, Java, Kotlin, Rust. Постепенно уход от Java в сторону Kotlin и D. Никаих питонов, руби, джаваскрипта и прочего детского сада.

2) Предельное упрощение деплоймента, использование просто установки инстанса на виртуальную или реальную машину. Никаких амазонов, докеров, кубернетесов и т.д.

3) В случае Java уход от сложных фреймворков, то есть это будет Ktor в случае котлина и Ninja framework в случае Java.
В случае D это будет или vibe.d для веба или DiamondMVC.
Про раст не скажу но думаю там тоже все будет ок.

4) В случае особой сложности рекомендую Microkernels. Для раста есть и есть для джавы.

5) Уход от скрама. Канбан — с модификациями под процессы. Скрам-мастером называть джуна который кофе разносит гребцам.

6) Никаких джир и прочей дряни, только Gitlab для всего.

7) Никаких ораклов, в основном использовать NoSQL базы, ну или PostgresSQL в крайнем случае.

И общий принцип: Не усложнять себе жизнь!

LinkedIn

Лучшие комментарии пропустить

Навеяно топиком и комментами:

Встречаются два разработчика
— Как сделать чтобы правильно разрабатывать софт?
— Могу рассказать.
— Рассказать я и сам могу. Как сделать — то?

Скрам-мастером называть джуна который кофе разносит гребцам

Это пять. Готов подписать такую петицию.

Несіть мені усі по 3 рубля і мудрості вам дам я до**уя ©

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

"

Никаих питонов, руби, джаваскрипта и прочего детского сада.

"

чому людина з дитячого садочка проти дитячого садочка? От бунтар :)

Никаких ораклов, в основном использовать NoSQL базы

так сейчас же все так поступают — финансовая информация в NoSQL, зато метрики какого-нибудь Zabbix-а в MySQL/MariaDB
для последнего ведь транзакционность куда важнее, чем для каких-то там денег

А я тоже, наевшись мухоморов в пятницу, люблю смотреть мультфильмы на ковре и придумывать новые nosqlagilemikrokernel-идеологиии разработки. Пустите меня в клуб скрам-мастеров?

Не зовсім зрозуміло чи це стьоб, але NoSql i Реляційні БД вирішують різні задачі, а не є взаємозамінні)))

зрозуміло — це стьоб

я решил предложить

Скіки проектів вже так зробив?

Никаких ораклов, в основном использовать NoSQL базы, ну или PostgresSQL в крайнем случае.

предлагаешь самому транзакции писать? Ну успехов, чего.

у. Никаких амазонов, докеров, кубернетесов

зря зря. Докер и кубер няшки где всё просто работает. Взял плагинчик который твою аппу упакует в докер контейнер и послал на CI, и всё, оно задеплоилось. А если ещё у вас IAC и терраформ, то вообще збс, все танцы с бубном не нужны, весь деплой инфраструктуры это лямбда.

Не усложнять себе жизнь!

ни один орхетектор от понижения свое чсв не откажется, «смарите какую я сложную систему наваял» это же основной поинт профессионализма и селери, на «смотрите какая сложная задача и как просто и понятно я её решил» никто ничего не променяет.

ни один орхетектор от понижения свое чсв не откажется, «смарите какую я сложную систему наваял» это же основной поинт профессионализма и селери, на «смотрите какая сложная задача и как просто и понятно я её решил» никто ничего не променяет.

то слишком неуверенный в себе архитектор, оч зависимый, до норм чсв ещё дорасти надо, там уже мнение других не считается

вот мои тезисы в ответ на основе реальных проектов виденных в дикой природе
1) пишем на js потому что все по пояс деревянные
2) только AWS Lambda
3) serverless.com жи
4) да ну на*** вообще сложно
5) канбан збс согласен
6) гитлаб на***, можно в слаке сратся тупо
7) динама все стерпит.
8) если что то не срастаеться — х№ячить пару новых очередей для вязкости.

2) только AWS Lambda
3) serverless.com жи

І швиденько соснете тому що будете башляти космічне бабло за API Gateway

а на*** нужно именно API gateway когда есть ALB? :P

Ибо нефиг писать serverless то, что предназначено для vps.

и сильными статическими гарантиями

Для jvm какие сильные гарантии дает Java/Kotlin, по сравнению с Scala/Ceylon?
Для нативного софта какие сильные гарантии дает D по сравнению с Rust/Haskell?
И что вы предлагаете для веба/мобайл?

Никаких ораклов, в основном использовать NoSQL базы, ну или PostgresSQL в крайнем случае.

Чем вам не зашел Oracle? Мне он тоже не очень, но всетаки интерсено, чем PostreSQL лучше Oracle, кроме цены?

1) Хаскель уж очень сложен, раст тоже, хотя уже полегче. D хорош тем, что дает хорошие гарантии при высокой практичности.

2) У постгреса лучше транзакционная модель, плюс он проще.

а что писать с такой идеологией?

Wordpress)) Наче там нема жодних модних штук. Береш і в продакшин.

Особенно весело когда очередная 0-day уязвимость смывает его как цунами ржавую тойоту

Ну и зачем вы описали мой текущий проект?))) Правда у нас Спринг и Хибернейт. Я думаю упрощения это хорошо, но отказ от фреймворков это слишком. Они очень сильно упрощают разработку и экономят время. Другое дело что нужно использовать только стабильные и уже зарекомендовавшие себя фреймврки с хорошим комьюнити

руби + синатра, тяп ляп и сайт готов, нахрен спринг, джава и хибер с их мегатонами кода

Для D есть отличные фреймворки

Это какие? Приплюснутые из него юзать?

Vibe.d для веба, как минимум. Есть еще DiamondMVC. Их не много, но они есть и весьма неплохие

Быстро работать будет, да и писать на Д приятно

У него от С и С++ отличий кот наплакал. Вот так и вернулись к С. И стоило жабаскрипты ваять и учить с толпой фреймворков к ним?

А D практически был лучше С или С++, но не взлетел таки.
Но если на вебе раскрутите, смотришь и питон выкинут за его уродство.

Предельное упрощение деплоймента, использование просто установки инстанса на виртуальную или реальную машину.

Предлагаю еще большее упрощение деплойнмента.
Вместо

D, Java, Kotlin, Rust.

и

В случае Java уход от сложных фреймворков, то есть это будет Ktor в случае котлина и Ninja framework в случае Java.
В случае D это будет или vibe.d для веба или DiamondMVC.

Юзать ru.wix.com (ну или что-то еще в таком роде). :-)
Ибо зачем

усложнять себе жизнь

всякими джавами, котлинами и растами? :-)

Lead Senior WIX Architect

 — фрилансер обыкновенный 1 шт

Не існує фрілансера звичайного! Ми всі різні і унікальні!

Рубль штучка, три трубля кучка

Несіть мені усі по 3 рубля і мудрості вам дам я до**уя ©

Дай йому трохи масла, він його любив

Читал с сочувствием до момента «никаких ораклов. в основном использовать NoSQL». И тут вспомнилась фраза из замечательной повести Роберта Тронсона: «Коммандор Солт запел одну из трех известных ему песен».

А что плохого в том, что всякой дури будет делать кто-то, кто не ты?

Да пусть делают, мне только интересно зачем

Эволюция не задаёт глупых вопросов, она делает во имя великого Рандома, а там что выживет — то и правильно было.

Хайп вокруг nosql уже прошел. Как и ожидалось они заняли свою скромную нишу в хранилищах ключ-значение. Что касается всех этих экзотических D и растов это для узкого круги фанато. Да и Энтерпрайз будет переезжать на .net. облачные хранилища обеспечивают все что раньше входило в java application server.

Да и Энтерпрайз будет переезжать на .net.

Влажные мечты)

Ну лет через 50 может быть.

не верю в 50 лет. Учитывая, что в банках еще крутится кобол, я вполне серьезно думаю, что жизнь современных топовых технологий будет приблизительно равно бесконечной.
ДноНет это конечно не касается, днонет умрет рано или поздно как жалкая пародия на джаву.

Влажные мечты это то что вы написали в своем посте. Приложения для websphere и weblogic я писал когда вы ещё под стол пешком ходили. Яву, которую оракл начал спускать в унитаз спас только андроид. В появлением кросплатформенного и опенсорсного core.net преимуществ у Явы не осталось. Точнее что осталось откусила нода.

Советую почитать как сейчас происходит разработка в мире Джавы и что сейчас используется. Воспоминания 20 летней давности уже немного не актуальны.

Увы, живешь в параллельной реальности.

С разморозкой тебя. Уже давно и очень не в тренде.

А как нонче без коду ободятси ?

Теперь для С=A+B, устанавливают 20 фреймворков и потом из них собирают нечто, что сложит 2 числа.

И правильно. А то понанимают по объявлениям а они «я просто ** пишу код». А потом с этим просто**написанымкодом как-то жить....

А ты думаешь те 20 фреймворков писались не нанятыми по объявлениям? Бгг

В случае некоторого саппорта и поддержки этого кода со стороны комьюнити и авторов это перестаёт быть в некоторой степени проблемой проекта. Хотя конечно всегда есть опасность, что автор впадёт в безумие, и придётся поддерживать форк с project specific фичами...

устанавливают 20 фреймворков

Предлагаешь изобретать велосипед каждый раз, когда он нужен?

Конечно нет. Просто сбегать за 20-й белазами, но всеми разными настолько, что у одного 3 колеса, в другого руль забыли присобачить.

Зачем белаз когда ЕСТЬ велосипед под твои нужды и не кривой?

Не знаю, но нычне предпочитают пачку белазов разной степени кривости и несовместимости.

Может в этих ваших сях не умеют в комбинируемость и дизайн API, что не удивительно, но в моём манямире даже cats.IO, Monix, ZIO сосуществую мирно, хотя внутри они либы для асинхронщины которые совсем по разному работают. И даже akka sterams можно дружить с fs2 и мониксом.

ваших сях

Ссяхи в постсовке? Они умерли почти, ну кроме, разве что, РФ.

7) Никаких ораклов, в основном использовать NoSQL базы, ну или PostgresSQL в крайнем случае.

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

Фрешградам плевать на такие аргументы, им прокачкой резюме надо заниматься.
Почему они должны заниматься прокачкой резюме — это уже другой вопрос

И что вы будете делать с ACID, когда у вас транзакция должна распространяся на десяток серверов БД, или в бизнес транзакции участвуют несколько организаций? Или что делать с ACID, когда вам надо реализовать бизнес-транзакцию для данных, которые должны быть доступны в разлиных локациях, например в US/EU? Так что ACID в современном софте — это не панацея.

И что вы будете делать с ACID, когда у вас транзакция должна распространяся на десяток серверов БД

Я буду следовать принципам ACID, используя ограничения NoSQL подхода, выбирая те показатели (CA vs CP vs AP), которые для конкретной задачи наиболее важны.

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

Волшебной пилюли еще не изобрели, и за все нужно платить. И главное, что я объясню заказчику — это цену вопроса (техническую и финансовую).

ACID — не панацея конечно, и не во всех случаях он нужен (если смотреть объективно). Но там где он нужен — нет места NoSQL подходу как ядру будущей системы.

Ну все, теперь заживем

Типізацію і nosql? тут конфлікт інтересів

8) Запретить конфликт интересов. Всех «самых умных» уволить.
9) Вообще запретить всё плохое.
10) Epic profit!!!!

Но ты забыл разрешить всё хорошее! «Строгим типизаторам» всё нужно указывать explicitly.

Все гарне повинно бути обов’язкове!

11) Все обов′язкове автоматично вважати гарним.
©Сова

>

То есть это D, Java, Kotlin, Rust.

Я думал вы Идрис предложите. А тут какая-то фигня унылая.

Навеяно топиком и комментами:

Встречаются два разработчика
— Как сделать чтобы правильно разрабатывать софт?
— Могу рассказать.
— Рассказать я и сам могу. Как сделать — то?

8) И чтобы девки давали

Девки не дают тем, кто использует языки со статической типизацией, язык должен быть динамичным %)

Тем кто не может определиться с типизацией дают парни, и/или наоборот.

ага, посмотрите в сторону руби ©

использовать NoSQL базы

Вот это было неожиданно, я думал ща за ламповый SQL будешь топить...Низачот!

И чем тебе джира не угодила?

Тем что гитлаб делает все тоже самое, только проще. Таски трекать проще

а что еще софт разрабатывают? вроде уже все написали что было нужно.

phpшники с 1сниками тихонько рыдают в сторонке...

Отличная идеология! Приходите работать в мою студию.

Ты где в этой методологии увидел слово «работать»?
Мы не пашем, не сеем, не строим

Нет. Я ее еще не открыл.

1) Использование только языков со статической типизацией и сильными статическими гарантиями.

C#, TypeScript, для сложной математики — F#.

2) Предельное упрощение деплоймента, использование просто установки инстанса на виртуальную или реальную машину.

Разве контейнеры не об этом? Как иначе можно перенести инстанс на другую машину? Или деплоить прямо жесткий диск целиком?
Предельное упрощение деплоймента — это Serverless архитектура.

3) В случае Java уход от сложных фреймворков

В случае .Net есть один простой фреймвок для всего.

4) В случае особой сложности рекомендую Microkernels.

В случае особой сложности рекомендую Azure — есть масса готовых сервисов и решений на все случаи.

5) Уход от скрама. Канбан — с модификациями под процессы.

Название не имеет значения! В крупных ИТ компаниях хоть Срам, хоть Кабан — один хер говнокодинг. По моему опыту аутстафа в «лидерах Долины» — там в Штатах самый популярный подход это Cowboy coding!

6) Никаких джир и прочей дряни, только Gitlab для всего.

Azure DevOps для всего: вместо Джиры, Гитлаба, билдов и деплоя.

7) Никаких ораклов, в основном использовать NoSQL базы

В энтерпрайзе совсем без реляционной базы — никак. Но да — 80% данных таки можно хранить в NoSQL.

И общий принцип: Не усложнять себе жизнь!

Есть 100500 книг и примеров как все делать просто и правильно. Но проекты, которые так сделаны — быстро и успешно заканчиваются. Это не интересно ИТ компаниям! Гораздо выгоднее налепить кучу спагетти кода, в котором никто не разберется — и тогда у клиента не будет выбора кроме вечно платить за доработку и сапорт.
Неужели вы думаете что дороги в городе чинят каждый год потому, что не знают как сделать так, что бы годами стояли без ремонта? Бизнес — это же вечное движение (и распил) бабла, а не просто «сделать хорошо и просто».

В D поддержка математики лучше чем в большинстве стандартных библиотек.

Как инстанс переносить — да скопировать просто exe-шник на другую машину.

Unikernels вместо облаков!

Как инстанс переносить — да скопировать просто exe-шник на другую машину

ээээээээээ
эээээээ
эээээээээ
как же так? нормально ж сидели! ©

да скопировать просто exe-шник на другую машину.

Ага, только возникает трабла что энвы то отличатся между собой могут хоть и там и там «CentOS 7» и тут на помощь приходят всякие паппеты и то на то и выходит)

Всё что нужно — это объяснить умному понимающему пользователю что он сам поймёт где достать redistributable библиотеки, и как их поставить, и где достать права на это, и почему первая ссылка в гугле ведёт на загрузку зоопарка троянов.

Компании уже давно поняли, что проще сделать веб-инсталлер. Вернее не поняли. Инсталлеры-то они делают, но то что они обновили версию у себя — ничего не значит, у юзеров остались старые версии инсталляторов/апдейторов и их тоже надо обслуживать серверной частью. Но компаниям бъля виднее, они же провидцы, и похеру что уже установленный софт сдох у клиента, а саппорт его послал в женский половой орган по ракушки.

да скопировать просто exe-шник на другую машину.

скопировал, а там энв другой, порты нужные закрыты, запускаешь а оно не работает, чо делать будешь?

Нормальная прога попросит доустановить нужное и порты открыть. Но это если исполняемый файл только. А так эту проблему уже давно решили в винде инсталляторами и пакетами в линухе.

Нормальная прога попросит доустановить нужное и порты открыть. Но это если исполняемый файл только. А так эту проблему уже давно решили в винде инсталляторами и пакетами в линухе.

вот это я вместо бизнеслогики буду сидеть делать работу девопсов? Шёл бы ты дядя со своими инсталяторами, это не нужная дурь.

Да я знаю «хуяк-хуяк и в прод» — нынче основной подход к разработке софта.

хуяк-хуяк и в прод

разделение обязанностей.

Одни делают первое (хуяк-хуяк), вторые другое(в прод). Ну... нынче это норма.
Отсталость еще первых разделить на две группы: группа «хуяк» и еще одна другая группа «хуяк».

Azure DevOps для всего: вместо Джиры, Гитлаба, билдов и деплоя.

Работал с Octopus, Teamcity, Mercurial, Klondike(NuGet repo) на прошлом месте и сейчас уже больше полу года работаем с Azure DevOps, при чем работа заключается в миграции проектов с мануальным деплоем руками индусов в CI/CD, сейчас на счету 4-й проект. Так вот, специализированные решения интегрированные между собой — намного гибче, а ажуровским пайплайнам не сравниться с Octopus(когда уже нормальный аудит подгонят?А поддержку мультитенанси? ), ажуровская борда просто шлак по сравнению с джирой имхо(логирование времени просто через задницу).

Azure

а зачем тогда молчать про GCP и AWS и пропогандить M$?

В случае .Net есть один простой фреймвок для всего.

Который ничего не умеет, игнорирование проблем это не решение.

Бизнес — это же вечное движение (и распил) бабла

по этому бизинесь это плохо.

Скрам-мастером называть джуна который кофе разносит гребцам

Это пять. Готов подписать такую петицию.

А такого же с кнутом не хочешь? И не совсем джуна, но из лиц не обезображенных интеллектом

а где про кондер и массажистку чресел?
скукотища...

1) Кондёр 1000мкФ * 400V
2) Зарядить
3) Вставить в чресла
4) "(*№))(;+__№!&#@@&
5) Грестить!!!!
6) PROFIT

Подписаться на комментарии