Comments 15
Однако отрицать падение общего уровня разработки за последние годы глупо. Все больше и больше продуктов выходят в состоянии «вечной беты» чтобы привлечь инвестиции или оправдать ожидания партнеров.
Ну правильно, подход «Х… к х… к и в продакшен» стал основным в разработке. А зачем париться тестировать там что то, отлаживать… если денег уже дали. Я вообще не понимаю как можно было ожидать другого если подавляющее большинство «девелоперов» про алгоритмизацию краем уха только слышали, а вместо того что бы подумать как реализовать своими силами какой то алгоритм, хотя бы для общего развития, идут сразу на стек найти вопрос как у него и ответ как подключить очередную раздую либу ради одной функции.
Меня очень сильно улыбает когда очередная херочка говорит с гордостью «у нас Agile»… неть девочка, у вас «Ср*ли, плакали лепили»… но вы почему то называете это Agile.
Фигню говорит человек. Проблема не в том, что "х-к, х-к и в продакшен", а в том, что сложность инструментов каждый день только растёт: куда ни плюнь — абстракции поверх абстракций, и, чтобы оно в общем случае работало, желательно знать, что там происходит внутри — на N уровней в глубину.
Пользуйтесь старыми инструментами, делов то)
- Начальство не поймёт, почему я хочу лепить уродливый аппликейшн на WinForms, когда вокруг у всех React, Angular и прочий веб.
- Коллеги не поймут — и разбегутся, потому что в глаза этот WinForms не видели, но гугл им подсказывает, что на рынке это не очень востребовано.
Все эти 'абстракции поверх абстракций' не берутся из ниоткуда, они позволяют (в общем случае) сделать быстрее и больше ценой скрытия некоторых деталей.
По WinForms, к сожалению, сказать ничего не могу — не работал с ним, но он вроде, как минимум, в кроссплатформ не может, нет?
Ну и если Вы не можете убедить коллег — насколько вероятно, что все коллеги не понимают, а один Вы знаете как правильно? Наверняка у них есть аргументы кроме хайпа на новые технологии :)
Я не про "файлик на сервер", а про распространённость и приемлемость инструментов высокого уровня. Дотнет со своим WinForms (а потом и с WPF) давал замечательный фундамент для того, чтобы построить аппликейшн, который примерно "ходит в базу и показывает UI". Были готовые контролы — не только кнопки, но и гриды с виртуализацией. Были готовые библиотечные механизмы для расширения этого всего под свои задачи. Была куча документации о том, как всем этим пользоваться. Программист (один) мог сесть и сделать аппликейшн — потому что вся эта ерунда вполне умещалась в голове. Называется "программист дотнет".
Сегодня нельзя просто взять и сделать, чтобы аппликейшн "ходил в базу и показывал UI". Сегодня нужно написать отдельно бэк, отдельно фронт, их взаимодействие. Если с беком всё более-менее прямолинейно, то для фронта нужно ещё выбрать аппликейшн фреймворк и UI фреймворк, а потом долго и мучительно работать с дизайнерами — тратить время на "кнопки, которые выглядят как леденцы, которые так и хочется облизать", на роутинг с сюрпризами, который ни у одного здорового человека не ляжет на мозг, писать с нуля контролы, которые, видите ли, абсолютно необходимы для хорошего UX, и т.д.
Расскажите мне теперь как все эти реакты и ангулары здорово помогают сделать хороший UI, где данные грузятся когда надо, где сразу есть виртуализация, чтобы броузер не падал с OOM :-) Нихрена из этого там нет.
Я согласен, что "зато кросплатформенно" — это в какой-то степени шаг вперёд, но в плане именно продуктивности — это сотня шагов назад.
Ну и если Вы не можете убедить коллег — насколько вероятно, что все коллеги не понимают, а один Вы знаете как правильно? Наверняка у них есть аргументы кроме хайпа на новые технологии :)
А зачем? :-) Софт должен вписываться в реальность, в которой он будет существовать: программисты должны обладать нужными знаниями, чтобы его пилить и поддерживать, юзеры должны использовать нужную ОС, чтобы этот софт работал, заказчик должен понимать последствия выбора именно таких вот технологий — что если ОС прекратят поддерживать, что если программисты уволятся и придётся искать новых, и т.д. "Правильно"-то оно может и правильно, но в реальность просто уже не вписывается.
в том, что сложность инструментов каждый день только растёт: куда ни плюнь — абстракции поверх абстракций
Давайте подумаем как же так вышло. Живет программист N, ему поставили какую то задачу, он нагуглил решение и прилепив либы X и Y закрыл таск. Потом за бокалом смузи он решает, что эти 10 строк кода которыми он слепил X и Y инновационный проект, та самая вещь которая достойна что бы увидеть мир и заливает это на гитхаб. Это находит программист N1 и включает в свой проект еще с какой то либой. Осталось только повторить итерацию несколько раз и мы имеем то что имеем. А ведь можно еще таскать код из других языков… уу какой простор для веселья. Так что осознайте уже, что абстракция поверх абстракции не причина, а следствие ситуации в которой ни N ни N1 не задумались, а полезли искать готовое.
Я вообще как то проспал революцию в которой умение программировать и умение быстро гуглить стали одим и тем же. Я не заметил в какой момент на человека в команде который предлагает реализовать самим или хотя бы проработать этот вариант смотрят как на чумного, а коллеги по цеху шепчут что бы взял готовое и не наводил тут смуту. С каких пор люди стали так доверять чужому коду и так не верить своему.
Статья на хабре из 2016:https://habr.com/ru/post/280099/
Уже тогда все было отвратительно. И с тех пор лучше не стало.
Компания А выкатала не идеальный, но вполне рабочий продукт еще полгода назад и уже гребет деньги лопатой.
Компания Б, которая начала разработку приблизительно в то же время, все еще в процессе разработки идеального продукта. Программисты упорно пишут 100500-й велосипед и когда допишут — то продукт быстро обгонит конкурентов (но это не точно)
не идеальный, но вполне рабочий продукт
Вы давно видели идеальный продукт? Я никогда. Даже просто рабочий уже днем с огнем искать надо. То что выпустит А будет похоже на скайп, но в отличие от него не будет иметь бэка в миллионы пользователей старой версии…
Программисты упорно пишут 100500-й велосипед и когда
Не надо 100500, один хотя бы напишите. Это уже будет шагом в нужную сторону. И возможно когда то наш рынок прототипов эволюционирует обратно в рынок ПО.
Храню как зеницу ока папку с программками которые не требуют установки, просто работают и занимают какие то смешные килобайты места. И я подозреваю, что я не один такой. А вы говорите что даже калькулятора не будет.
Сложность ПО растёт, а требования к кадрам снижается, если 15 лет назад все программисты были с инженерными специальностями и хотяб знали дискретную математику, теорию графов и т.п., то сейчас берут гуманитариев после курсов. Которые вместо того что-бы сделать систему взаимодействия из компонентов просто накидывают свалку кода. Вместо того что-бы воспользоваться матрицей переходов лепят из if/else тысячи строчек кода обработки смены состояний. Я не говорю уже о том что используют везде int не думая об ОДЗ, как результат храним данные с излишком или выходим за пределы.
Антирекорд 2020: в ПО выявили уязвимостей больше, чем в любой другой год
Разучились программировать или осознанные действия?
Как говорили в стародавние времена:- Мастерство не пропьешь. А если его нету?!
Антирекорд 2020: в ПО выявили уязвимостей больше, чем в любой другой год