LINUX.ORG.RU
ФорумTalks

github-based разработка

 


0

4

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

В результате чего, проект превращается в помойку.

★★★★★

А как называется такой стиль программирования… В результате чего, проект превращается в помойку.

«Хк-хк и в продакшн».

А если серьёзно – то наиболее подходящим по смыслу было бы «dependency hell», но оно немножко про другое.

Korchevatel ★★★★★
()

из страха написания велосипедов

Синдром сишника. Это не лечится.

Зачем писать велосипед, если кто-то уже написал его?

RazrFalcon ★★★★★
()

В результате чего, проект превращается в помойку.

Ты про проект под предводительством дедов, который на нормальном языке занимает 100 строчек, а у дедов 100500 строчек потому что им нравится каждый раз переписывать мир и они боятся пакетных менеджеров?

Синдром сишника. Это не лечится.

+100500 @RazrFalcon

fsb4000 ★★★★★
()

или менеджера пакетов

а откуда ещё тащить зависимости? Более того, в репозиторий дистра левые пакеты от Васянов обычно не попадают, если оно там лежит, значит что-то нужное

Harald ★★★★★
()

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

Fullstack javascript developer.

Im_not_a_robot ★★★★★
()
Ответ на: комментарий от Harald

в репозиторий дистра

речь про pip и ему подобные

а откуда ещё тащить зависимости?

не так важно: можно и из pip и из github, но чтобы проект был работоспособным

next_time ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

поэтому, когда надо сделать виджет погоды, обязательно надо его сделать зависимым от стороннего онлайн-сервиса Васи Пупкина

сервис закрылся через месяц, а виджет погоды так и остался в пакетах убунты

next_time ★★★★★
() автор топика

Это метод разработки «копипаст-х*як-х*як» ©

te111011010
()

anti-bicycle driven development. Парни сделали из kiss карго культ.

crutch_master ★★★★★
()
Ответ на: комментарий от RazrFalcon

Зачем писать велосипед, если кто-то уже написал его?

Я всё понимаю, но крайности не нужны.

crutch_master ★★★★★
()

Cutting edge:) Да сейчас почти все так делают. Произошла уже не одна смена поколений разработчиков с тех времён, когда разработкой занимались более-менее квалифицированные кадры. Теперь это работа для васянов, а васяны доверяют другим васянам.

ixrws ★★★
()
Ответ на: комментарий от fsb4000

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

Ситуация, когда ради того, чтобы запустить обычный макет сайта нужно накатить docker образ с мегатоннами зависимостей, потому что просто это дело завести без пол литры вообще не реально - обычно дело сейчас.

Хуже всего то, что теперь чтобы разобраться в простейшем проекте нужно тратить несколько дней на анализ, потому что каждый васян «так видит» и творит чёрт знает что в коде и в структуре. И объёмах этого кода.

ixrws ★★★
()
Ответ на: комментарий от next_time

Не вижу связи между привязкой к сервису и стабильностью.

RazrFalcon ★★★★★
()
Ответ на: комментарий от ixrws

Вы пробовали разбираться в сишном говнокоде из которого состоит всё окружение линя? Это когда каждая прога переизобретает свой парсер аргументов командной строки.

У меня есть опыт ковыряния в freetype и fontconfig - я чуть не поседел от этого ужаса.

RazrFalcon ★★★★★
()

из страха написания велосипедов

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

Мастдащики тоже этим страдают. Очень часто виндовый C/C++ код компиляется только mvsc.

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Пробовал, неприятно. Но не идёт ни в какое сравнение с современными веб проектами. Можно сказать сишники это наивные дети с огромным опытом и совестью. Они бояться переусложнений как огня, хотя код какого-нибудь XOrg лично меня пугает:) Но тем не менее, разбираться в средних и крупных веб проектах куда сложнее и значительно сложнее это всё дело запустить без помощи того же docker.

ixrws ★★★
()
Ответ на: комментарий от ixrws

Веб - это отдельное болото. Не нужно переносить минусы npm на всё ПМ.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Было бы странно, если бы сишный код, написанный под линь, содержащий, например, dlopen, вдруг компилироваться под вынь.

grem ★★★★★
()
Ответ на: комментарий от gag

Читаю и не знаю, какой глаз у меня должен первым начать дёргаться.

grem ★★★★★
()
Ответ на: комментарий от RazrFalcon

Это когда каждая прога переизобретает свой парсер аргументов командной строки.

В общем, чтобы судить о подобных NIH наверняка, надо проводить раскопки: ведь код написан 20+ лет назад. Действительно были ли тогда широко распространённые библиотеки, решающие конкретную проблему. Удовлетворяли ли они всем требованиям, или из-за нехватки какой-то фичи приходилось отказываться и писать свою реализацию.

gag ★★★★★
()

А как называется такой стиль программирования

Программирование на Go, кажется.

ins3y3d ★★★★★
()
Ответ на: комментарий от gag

Нормальная std - это клей между либами, а не тот ужас что в java, python, go, etc.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Поехавший что ли? Да даже на nodejs как два пальца сделать код специфичным не задумываясь об этом. Не зря же сейчас так популярна wsl среди nodejs разработчиков, потому что по факту nodejs со всеми нужными для проекта пакетами под винду либо имеют особенности вроде зависимостей от какого-нибудь python либо ещё чёрт знает что. Куда проще не заморачиваться и делать всё под wsl без проблем.

Ну так вот, врапперы нихрена не для всего, а в ряде случаев имеют кучу особенностей, то есть либо тормозят, либо код становится сложнее, либо ещё что-то. А если уж совсем серьёзно, то реально кросплатформенных врапперов для C просто нет, только вещи вроде nspr, glib и прочие проекты, которые в лучшем случае содержат только часть нужных проекту функций. Есть только два более-менее кросплатформенных враппера: конпилять C|C++ в javascript|wasm или писать на C++ Qt. Но даже Qt при соблюдении вообще всех условий более-менее удобно использовать только под Linux, Windows и Mac. При этом используя Qt во все поля, не всегда будет удобно и возможно использовать всякие сторонние либы.

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

И да, использование разных компиляторов и невозможность скомпилять что-то под одним, а под другим возможность - это опять же нормально для С++ и тем более С.

ixrws ★★★
()
Ответ на: комментарий от ixrws

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

Речь не про произвольную платформу, а про хотя бы основные.

это опять же нормально

Нет. Это говнокод.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

А смысл ломать что работает? А кто будет оплачивать банкет? Какие ты знаешь примеры, когда даже крупное очень успешное ПО переписывают и рефакторят просто потому, что там что-то архитектура не такая или тем более работающий код плохо выглядит?

Обычно даже в очень успешном ПО бывает так: допилим что-то, просто потому что просят или потому что модно. Поправим что-то потому, что сломано или сломалось. Даже у относительно новых контор вроде facebook уже накопились тонны легаси, которые они переписывать не будут, кто будет платить? А уж сколько легаси в мире nix, в Windows или у ibm c oracle - одному богу известно.

ixrws ★★★
()
Ответ на: комментарий от RazrFalcon

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

Взять тот же Win API, по мне так это довольно неплохое и достаточно эффективное API по многим параметрам и конечно по части UI. Какой смысл разработчику, использовать какой-нибудь Gtk или вообще завязываться на Qt, если может продолжить спокойно использовать Win API что из C, что из C++, что из C#? Да, для библиотек всё несколько иначе, но далеко не для всех. Даже для шибко кросплатформенных библиотек вроде ffmpeg поддержкой разных платформ занимается много людей. Причин там дохрена. Элементарная работа с файловым вводом по разному работает, что уж говорить про потоки и прочие шибко отличающиеся по API вещи от ОС к ОС.

Давай так, назови что-то для С, хотя бы на уровне Qt по объёму реализованных кросплатформенных фич.

ixrws ★★★
()
Ответ на: комментарий от ixrws

А смысл ломать что работает?

Оно не работает. О чём и речь.

А кто будет оплачивать банкет?

Речь шла про опенсорс.

рефакторят просто потому, что там что-то архитектура не такая

Рефакторинг - неотъемлемая часть разработки. Иначе говнокод.

RazrFalcon ★★★★★
()
Ответ на: комментарий от ixrws

Основные для кого?

Тогда описание проекта должно начинаться со списка поддерживаемых платформ. Нету - значит подразумевается что работает везде.

Только потому, что это считается говнокодом?

Да.

если может продолжить спокойно использовать Win API

winapi - ад и израиль. Огромное количество софта пишут на Qt чисто под винду, не смотря что он в теории кроссплатформенный. Ну или хотя бы на C#/WPF.

Давай так, назови что-то для С, хотя бы на уровне Qt по объёму реализованных кросплатформенных фич.

Без понятия. Я избегаю сишку как огня.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

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

Рефакторинг - это неотъемлемая часть разработки крупного, постоянно меняющегося проекта длительного срока жизни в идеальном мире при идеальных условиях. В реальном же мире зачастую поступают иначе - берут крупный кусок и переписывают его полностью, зачастую на чём-то другом и другими людьми. Это дешевле. А в малоизменяющейся кодовой базе за лет 20-30 особо и рефакторить то нечего, строго говоря.

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

ixrws ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.