All streams
Search
Write a publication
Pull to refresh
4
0
Send message
Ну тогда можно сказать, что «вся боль» о том, что решения стали слишком гибкие, слишком универсальными, слишком много слоев абстракций, потому что у нас нету «бога», способного сказать: «Стоп! Твой монстр еле шевелится, а пользователи убежав к конкурентам, облегченно выдыхают, мгновенно загружая простенькую программу, которая при этом не содержит и 90% функционала твоего монстра».
И, возвращаясь к теме «заказчик заказал, программист просто исполняет», я тут затеваю ремонт в квартире, смотрю как и все «ботаники» ролики про ремонт на ютубе. Очень понравился подход одного опытного мастера, который настаивает на том, что нужно делать как надо, а не как хочет заказчик, это в конечно итоге будет лучше для обоих. Понятно, что это все общие лозунги, но и лозунги «заказчик платит»,«клиент всегда прав» явно требуют осмысления в каждом конкретном случае.
А основание простые. Хоть сайт и не такой уж сложный, но это был чистый php, довольно аккуратно, модульно написанный(даже я разобрался), а современное состояние в веб такое, что часто представители разработчиков даже не рассматривают ситуацию, что сайт может не использовать один из популярных движков. Они первым вопросом спрашивают: «на чем сайт?», и не давая ответить, пытаются угадать, перечисляя глупому заказчику те многочисленные движки, с которыми они умеют работать. А когда узнают, что движка нет в списке, вариант сделать все с нуля — единственный, который рассматривается, а предложение: «может посмотрите, как оно сейчас устроено, может разберетесь и подправите?» сразу отвергаются. И я могу понять этот подход с экономической точки, — «делают то, что умеют», но в результате такие вот истории. )
Например?
Я серьезно не анализировал каждый случай, это скорее общее ощущение от «чтения заголовков». Ощущение, будто в короткий период появилось множество технологий, фреймворков, даже парадигм, новых версий сред разработки. Хлынуло в первую очередь из в веб направления: всякие ангуляры, реакты, метеоры, вуи, тайпскрипты, теневые домы, вебассембли, редаксы, нпмы, ноды.жс, какие-то стеки технологий, среды и плагины, все это поддерживающие и т.д. Я вебом не занимался никогда, но помню php и mysql всем хватало, а тут такое многообразие. )
Или взять Unity3D. Помню один из многочисленных школьников на ютубе слабо владеющий внятной речью, за пол часа накликал скелет для какой-то примитивной, но работоспособной игры. Я вообще в то время слабо представлял практические пути создания игры для мобилок, ну может глючные примеры на QML потрогал, а тут человек без особых знаний и навыков в программировании делает что-то рабочее. Вот и подумалось, это ли не «волшебная кнопка». )
Нет, не сарказм, все так и есть, я кроме Qt да в.студии особо ничего не использовал, но читая тот же хабр, регулярно встречаю восторженные отзывы об очередном инструменте, плагине, редакторе, фреймворке и т.п., который чуть ли не сам всё за тебя делает. Глаза разбегаются, не понятно, что выбрать. )
Если бы ТС причитал необоснованно и в гордом одиночестве, то тут не набралось бы под 1,5К комментов. А значит «не все так однозначно»(с).
Что касается эволюционного процесса, то да, это он. Но я даже где-то выше (или ниже) довольно развернуто указал на минусы такого процесса.
Грубо говоря и чтобы не плодить простыней: эволюция «сосет» у разумного замысла. И ТС, подымает сложную проблему, в рамках которой невольно предлагает вспомнить, что мы — разумные существа, а не крысы выживающие в лабиринтах построенных социально-экономическими реалиями. )
Вот тут и требуется умение не быстро прикрутить проверенную библиотеку, а взвесить затраты и главное последствия всех подходов. В список подходов вполне может входить и сторонний код, и самостоятельное исправление, и даже тупое игнорирование проблемы. Оно примерно так все и происходит, просто, к сожалению, люди, ответственные за выбор варианта, зачастую либо не заморачиваются с глубоким анализом, а работают по накатанной, либо в своем глубоком анализе преследуют цели, отличные от «сделать пользователям хорошо». Например, преследуют цель «сделать быстрее», либо «сделать идеально», либо «не делать ничего», либо «сделать, потому что умею» и т.д.

Костылями вполне можно считать как прикрутку тяжелых библиотек с ненужными зависимостями, так и написанную на коленке кривую заплатку.
Ну, начнем с того, что у меня вовсе не присутствует подхода, с которым вы категорически не согласны. Вариант, где программист «по каким-то причинам работающий в стиле «все уже придумано до меня, никаких велосипедов»» специально упомянут, чтобы избежать обвинений в предвзятости. Это может быть вполне опытный разработчик с 15 летним стажем, который трезво оценивает современные требования к разработке в своей нише, и понимает, что разумнее использовать чужие готовые наработки, чем набивать свои шишки. Т.е. это вполне положительный пример.
И я не престану утверждать, что в каких бы областях ни творил разработчик, какие бы парадигмы, подходы, инструменты ни диктовали бы рынок, мода, гуру, — нельзя без вдумчивого анализа конкретной задачи (и много чего еще в), принимать решение о том, как писать, на чем писать, что использовать, что нет. Коротко такой подход можно назвать здравым смыслом. )
А что касается веба, то вот подходящий к теме длинный пример из моей практики.
Контора, где я работаю, заказала у сторонней фирмы немного изменить сайт. На стороне, потому что в своем штате ни один айтишник вебом не занимался и желания не проявлял, а человек, делавший последнюю версию, толи денег много захотел, толи перестал интересоваться темой, не важно. Сайт обновили: перешли с самописного движка (php) на движок друпал, просто визуально/функционально повторив сайт. На том же хостинге новый сайт стал тормозить… По замерам на порядок — на два, и это объяснили большим уровнем абстракции, а значит гибкостью, универсальностью, последующей легкостью в изменении и поддержке. Я даже согласился с этим объяснением, и по совету разработчиков сайта, выбил у руководства перенос на рекомендованный, проверенный многократно, но более дорогой хостинг на vps. Худо бедно, но все зашевелилось со скоростью на уровне «есть сайты и потормознее, сойдет для сельской местности».
Очень скоро появились жалобы от посетителей, нет, не на скорость, а на то, что люди, условно говоря, подавали заявку, сайт «говорил» им, что успешно её зарегистрировал, но по факту в базу эти заявки не попадали, или на то, что сайт недоступен в короткий период подачи заявок на получение, скажем, товара повышенного спроса. )
Проблема возникала не регулярно, но довольно частая, и в результате многократных переговоров с разработчиками сайта дошло до того, что последние обвиняли посетителей во лжи, и что у них все работает, проверили много раз. В конечном итоге выяснили, что посетители не виноваты, что компетентность разработчиков не позволила быстро и точно локализовать проблему, потому что глубоко они в друпале не разбираются, а в php и mysql почти никак. Зато быстро, как конструктором умеют делать сайты на друпале.
Пока шла вся эта тягомотина, мой напарник увлекся node.js, изучил react, поплевался на отсутствие типизации в javascript, освоил typescript, поизучал и, (как он посмел!) написал свой аналог redux, изучил основы работы с vps и нарисовал такой же сайт, на своем react.js движке практически без зависимостей, который летает, в котором ему понятно, что как работает. Несколько месяцев — и новый сайт, все довольны, ну кроме сторонней фирмы, с которой пришлось расторгнуть договор.
Никакой морали, просто подходит к контексту разговора.
Вот уже не думал, что кто-то посетует на нехватку инструментов для разработки. ИМХО, их больше, чем нужно, и, по отзывам, один удобнее другого. )
Это то и настораживает. Когда наблюдаешь «выкрутасы» в отдельных программных продуктах, поневоле задумываешься об отсутствии разумного создателя. )
Ну появление новых требований диктуется не разработчиком, а заказчиком и пользователями.
Да, так бывает, это очевидно, но также очевидно, что бывает, когда решения об обновлении принимают сами разработчики (например, когда конторка маленькая, или вообще разработчик один, он же маркетолог, дизайнер и т.п), или когда конторка большая, и решение принимают не разработчики, а специально обученные люди, иногда даже вопреки пожеланиям пользователей.
Зачем делать редизайн? Ну может потому что у конкурентов дизайн адаптивнее(новые устройства появляются регулярно и ваш старый сайт
а если не сайт, а если 3д редактор, или операционная система, или текстовый процессор, или калькулятор или просто у конкурентов сайт еще менее адаптивный? А может просто потому, что вкладывая незначительные усилия в ненужное пользователям перекрашивание и тасование кнопок и закладочек, можно объявить о выходе новой версии, а затем рекламой, юридическими ходами, склонять пользователей к объективно ненужному обновлению?
А может просто начальство требует новый релиз каждый год, а у маркетологов нормальные идеи закончились, а место терять не хочется и к легкому калькулятору приделывают тормозные анимированный кнопки, затем конвертер валют, единиц измерения, вычислитель ипотеки, построитель графиков, редактор кода, магазин скриптов, чат, но так и не делают нужный некоторым юзерам квадратный корень? )
Я ради интереса недавно зашел на sql.ru где когда-то участники раздела про MS Access переживали неудачную политику развития этого изначально весьма удачного продукта. Так вот, там до сих пор бытует устойчивое мнение, что не стоит использовать версии выше 2003, а 2003 до сих пор успешно применяется многими в разработках включая коммерческие. Это каких же таких «полезных» изменений надо было надобавлять, что опытные пользователи уже 15 лет отказываются обновляться? )
О каких старых багах речь, если пользователей все устраивает? )
Я просто указываю на очень распространенные ситуации, для которых придумали пословицу «лучшее — враг хорошего», ну или «работает — не трогай».
Я понимаю, что можно долго обмениваться частными гипотетическими и реальными примерами, но они не дают права делать обобщения и уж тем более выводить универсальные правила создания и обновления программ.
Мой взгляд такой: обобщить и выдать универсальный подход по созданию и обновлению софта за пару абзацев невозможно. Можно накидать несколько общих размытых рекомендаций, которыми без опыта и удачи даже не каждый способен правильно воспользоваться. Например, если ты опытный авторитетный программер, разработал и поддерживаешь легкий, шустрый продукт с минимальным использованием сторонних библиотек, имеешь благодарных пользователей, ценящих эту легкость и шустрость, то у тебя будет один набор доводов добавлять или нет стороннюю, незнакомую тебе, тяжелую библиотеку с зависимостями. Если же ты начинающий, не уверенный в своих силах разработчик, или просто по каким-то причинам работающий в стиле «все уже придумано до меня, никаких велосипедов», то у тебя будет другой набор доводов.
Вопрос в том, зачем что-то писать вообще, если уже работает за 0,05с и пользователей устраивает?
Вы взяли и замедлили производительность на порядок, на порядок раздули приложение сторонним кодом, стабильность которого по сравнению со старым никто не оценивал, наняли опытного дизайнера, который перерисовал интерфейс так, чтобы привыкнуть было не очень сложно, и все потому, что якобы приложению «калькулятор»(например) не выжить без испытаний постоянными обновлениями? )

Достаточно заглянуть в гуглплей, чтобы убедиться, что апокалипсис уже давно там. )
100500 новых игр в день, большинство из которых по просмотрам и монетизации не намного превзойдут фотку кота тети Зины в одноклассниках. А туторы на ютубе по созданию игры на юнити намекают, что время разработки этих игр остро конкурирует со временем создания фотки вышеупомянутого кота.
Все меньше фирм готовы вкладываться в серьезный игровой продукт, который может не выстрелить.
Пользователи зачастую уже давно ничего не требуют, ну разве что «вернуть, как было». Но кто их слушает? Вот вам пользователи новая непривычная, тормозная, глючная версия, с добавлением сомнительного функционала, покупайте, осваивайте, привыкайте. Поддержка и продажа старой версии окончены, выбора нет. )
Странно, что не увидели комментариев о причинах, они есть. Что касается тезиса «гораздо выгоднее разработать новый процессор, чем оптимизировать ПО», то он подразумевают заговор разработчиков ПО и производителей железа, но есть объяснения попроще. Также я сомневаюсь, что низкое качество ПО объясняется привычками писать плохо, скорее требование выдавать новые версии как из пулемета и просто низкая квалификация не позволяют писать хорошо. Да, модель бизнеса виновата, но она не рухнет, потому что объективных причин для обновления ПО и железа широким массам уже давно не требуется, а неширокие не в вносят существенных искажений в модель. )
Спрос/предложение — отличный механизм, когда люди сами решают, осознанно, предварительно подробно ознакомившись о плюсах, минусах, альтернативах. Современные технологии продаж успешно держат количество таких людей на уровне безопасном для прибыльной реализации световых и воздушных колебаний остальным массам.
Думаете не стоит? Тогда ограничусь незапрещенным имитатором запрещенного имитатора антивируса. Пусть бородатого айтишника не обману, но хоть на девушку впечатление произведу своим бунтарством. )
Зато можно будет бравировать перед друзьями быстрым компом, на котором стоит запрещенный имитатор антивируса последнего поколения. )
А какой ситуации можно ожидать, если ПО возникает, меняется, умирает по законом очень похожим на эволюционные? Да, кто-то скажет, что нет в мире ПО нормальной конкуренции и настоящего выживания наиболее приспособленных, что бабло и маркетинг исказили законы и побеждают не самые быстрые, компактные, удобные, надежные, а блестящие, мигающие, часто обновляющие внешний вид, разрекламированные.
Печаль в том, что эволюционный подход хоть и прекрасен, но он вовсе не обязан выдавать эффективное во всех отношениях решение, а главное условия, к которым вынуждены приспосабливаться программы (их разработчики) сильно изменились. Изменились не столько из-за жадных бизнесменов, хитрых маркетологов и глупых дизайнеров, а по причине широкого распространения компьютеров, мобил и прочих умных устройств среди населения. ПО, превратилось в пакет с соком на полке супермаркета и на него стали действовать отработанные десятилетиями методы эффективной продажи (заодно придумали несколько новых специфичных для софта). Да, маркетологи виноваты, но они вторичны. Первичен человек, который, как и 100 лет назад, любит «новое», привлекающее внимание, с функцией «потешить ЧСВ» и т.п.
Так что ничего существенного мы тут не изменим, разве что всем возмущенным скинуться и оплатить масштабную рекламную компанию с тезисами, продвигающими эффективность, функциональность, реальную надежность, олдскульность и т.п. Но это все временно, и против любви к «новому» мало что поможет, она «прошита» в людях аппаратно. )
В свое время искал бюджетный хостинг под node.js + php, чтобы можно было использовать старое php наследие и постепенно вытеснять нодой. Не могу сказать, что удалость найти много шаред-хостингов с нодой, а уж тем более в паре с php. Сейчас, возможно, ситуация изменилась, не изучал, уже использую vps.

Information

Rating
5,452-nd
Registered
Activity