IT в России и мире в реалиях мирового кризиса
1,302,731 7,831
 

  slavae ( Слушатель )
22 сен 2018 09:36:53

Разочарование в софте

новая дискуссия Дискуссия  1.063

На неделе на Хабре попалась статья, очень печальная, на тему разработки программ. Автор печалится, что программирование как инженерия сдалось под натиском хипстеров. Количество комментов уже перевалило за тысячу.

Моё разочарование в софте
http://tonsky.me/blog/disenchantment/





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


Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

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

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений. Люди даже гордятся, насколько неэффективно работает программа, типа «зачем беспокоиться, компьютеры достаточно быстрые»:

@tveastman: Я каждый день запускаю программу на Python, она выполняется за 1,5 секунды. Я потратил шесть часов и переписал её на Rust, теперь она выполняется за 0,06 секунды. Это ускорение означает, что моё время окупится через 41 год, 24 дняУлыбающийся

Наверное, вы слышали такую мантру: «Время программиста дороже времени компьютера». Это означает, что мы тратим компьютерное время в беспрецедентных масштабах. Вы бы купили машину с расходом 100 литров на 100 километров? Как насчёт 1000 литров? С компьютерами такое происходит постоянно.

Всё невыносимо медленно


Оглянитесь вокруг: портативные компьютеры в тысячи раз мощнее тех, что привели человека на Луну. Тем не менее, каждый второй сайт не может обеспечить плавную прокрутку страницы на 60 FPS на последнем топовом MacBook Pro. Я могу комфортно играть в игры, смотреть видео 4K, но не прокручивать веб-страницы! Это нормально?

Почтовому приложению Google Inbox в браузере Chrome от той же Google, требуется 13 секунд, чтобы открыть письмо среднего размера:



Он ещё анимирует пустые белые формы вместо того, чтобы показать их содержимое, потому что это единственный способ анимировать что-то на веб-странице с приличной производительностью. Нет, не 60 FPS, а скорее «настолько быстро, насколько возможно на этой странице». С нетерпением жду, что же веб-сообщество предложит, когда дисплеи 120 Гц станут мейнстримом. Они еле справляются с 60 Гц.

Обновление Windows 10 занимает 30 минут. Что можно делать так долго? Этого времени достаточно, чтобы полностью отформатировать мой SSD-накопитель, загрузить свежий билд и установить его примерно 5 раз подряд.



Павел Фатин: Набор текста в редакторе — относительно простой процесс, поэтому даже 286 могли обеспечить довольно плавный процесс набора.

В современных текстовых редакторах задержка при наборе больше, чем в 42-летнем Emacs. Текстовые редакторы! Что может быть проще? На каждое нажатие клавиши, нужно всего лишь обновить крошечную прямоугольную область на экране, а современные текстовые редакторы не могут сделать это за 16 мс. А это много времени. МНОГО. 3D-игра заполняет экран сотнями тысяч (!!!) полигонов за те же 16 мс, а также обрабатывает ввод, пересчитывает мир и динамически загружает/выгружает ресурсы. Как так?

Тенденция такова, что софт вовсе не становится быстрее и функциональнее. Мы получаем более быстрое оборудование, на котором софт с теми же функциями ворочается медленнее, чем раньше. Всё работает намного медленнее максимальной скорости. Никогда не задумывались, почему ваш телефон загружается от 30 до 60 секунд? Почему он не может загрузиться, скажем, за одну секунду? Здесь нет никаких физических ограничений. Лично мне бы такое понравилось. Хочется, чтобы разработчики достигли предела, используя каждый бит для производительности.

Всё ОГРОМНОЕ

И ещё это раздутие. Веб-приложения могут открываться в десять раз быстрее, если просто заблокировать рекламу. Google умоляет всех прекратить тормоза с помощью инициативы AMP — технического решения, для которого не нужны какие-либо технологии, просто немного здравого смысла. Если удалить раздувание, интернет станет работать на сумасшедшей скорости. Неужели это сложно понять?

Система Android без приложений занимает почти 6 ГБ. Просто задумайтесь на секунду, насколько неприлично огромное это число. Что там, фильмы в HD-качестве? Думаю, в основном код: ядро, драйверы. Ещё какие-то ресурсы, конечно, но они не могут быть такими большими. Сколько же драйверов вам нужно для телефона?



Windows 95 занимала 30 МБ. Сегодня у нас есть веб-страницы тяжелее, чем эта ОС! Windows 10 уже 4 ГБ, то есть в 133 раза больше. Но разве она в 133 раза лучше? Я имею в виду, функционально они практически одинаковы. Да, у нас появилась Кортана, но я сомневаюсь, что она весит 3970 МБ. Но это Windows 10, неужели Android должен быть ещё в полтора раза больше?

Приложение клавиатуры Google как ни в чём не бывало съедает 150 МБ. Эта программа рисует 30 клавиш на экране — она правда в пять раз сложнее, чем вся Windows 95? Приложение Google app, в основном, просто пакет для Google Web Search, занимает 350 МБ! Сервисы Google Play, которыми я не пользуюсь (я не покупаю там книги, музыку или видео) — 300 МБ, которые просто сидят здесь и которые нельзя удалить.



После установки всех необходимых приложений (социальные сети, чаты, карты, такси, банки и т. д.) на телефоне остался всего 1 гигабайт для фотографий. И это вообще без игр и музыки! Помните времена, когда ОС, приложения и все ваши данные помещались на дискету?

Ваша программа для заметок наверняка написана в Electron и, таким образом, поставляется с драйвером для контроллера Xbox 360, умеет показывать 3D-графику, воспроизводить аудио и фотографировать с помощью веб-камеры.



Простой текстовый чат всегда славился скоростью и малым потреблением памяти. Так что Slack — это пример очень ресурсоёмкого приложения. Я имею в виду, что чат и текстовый редактор — это самые базовые вещи, они должны потреблять меньше всего ресурсов. Добро пожаловать в 2018 год.

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

Всё гниёт

Android-телефон на 16 ГБ был прекрасен три года назад. Сегодня под Android 8.1 он еле работает, потому что каждое приложение увеличилось минимум вдвое без видимых причин. Дополнительных функций нет. Они не стали быстрее и внешний вид не изменился. Они просто… раздулись?

iPhone 4s вышел с iOS 5, но едва может работать под управлением iOS 9. И это не потому, что iOS 9 намного лучше — в основном, система не изменилась. Но новое оборудование быстрее, поэтому они сделали программное обеспечение медленнее. Не волнуйтесь — вы получили захватывающие новые возможности, например… работа тех же приложений с той же скоростью! Не знаю.

iOS 11 прекратила поддержку 32-разрядных приложений. Это значит, что если разработчик не готов вернуться и обновить приложение, скорее всего, вы не увидите снова эту отличную программу.

@jckarter: Программу DOS можно заставить работать без изменений практически на любом компьютере, сделанном после 80-х годов. Приложение JavaScript может прекратить работу из-за завтрашнего обновления Chrome.

Сегодняшние веб-страницы не будут работать в любом браузере через 10 лет (а может и раньше).

«Нужно бежать со всех ног, чтобы только остаться на том же месте». Но смысл? Я могу постоянно покупать новые телефоны и ноутбуки, как все, но делать это лишь ради того, чтобы иметь возможность запускать все те же приложения, которые стали только медленнее?

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

Хуже — значит лучше

Сейчас никто ничего не понимает. И не хочет понимать. Мы просто выпускаем полусырую ерунду, надеемся на лучшее и называем это «здравым смыслом для стартапа».

Веб-страницы просят обновиться, если что-то пошло не так. У кого есть время, чтобы найти причину неполадки?



Любое веб-приложение выдаёт постоянный поток «случайных» ошибок JS, даже на совместимых браузерах.

Вся архитектура баз данных веб/SQL построена на предпосылке (даже надежде), что никто не изменит данные, пока вы смотрите на открытую веб-страницу.

Большинство приложений для совместной работы сделали «как смогли», там масса типичных сценариев, когда они теряют данные. Видели диалог «Какую версию сохранить?» Сегодня планка так низка, что пользователи рады даже этому вопросу.



И нет, в моём мире не является нормальным приложение, которое говорит: «Я уничтожу часть твоей работы, только выбери какую».

Linux намеренно убивает случайные процессы. И всё же это самая популярная серверная ОС.

У меня каждое устройство регулярно выходит из строя так или иначе. Время от времени монитор Dell нужно аппаратно перезагружать, потому что в нём есть софт. AirDrop? Вам повезёт, если он обнаружит устройство, иначе что делать? Bluetooth? Спецификации настолько сложны, что устройства не будут устанавливать связь друг с другом, а периодические перезагрузки — оптимальный вариант.



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

Продолжение следует.
Отредактировано: slavae - 22 сен 2018 09:37:33
  • +0.14 / 8
  • АУ
ОТВЕТЫ (75)
 
 
  slavae ( Слушатель )
22 сен 2018 09:38:28

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

В программировании такой же хаос

Кажется, что никто больше не заинтересован в качественных, быстрых, эффективных, долговечных, основательных решениях. Даже если давно известны эффективные решения, мы по-прежнему боремся с теми же проблемами: управление пакетами, системы сборки, компиляторы, конструкция языка, IDE.

Системы сборки по своей сути ненадёжны и периодически требуют полной очистки, хотя у них есть вся информация для инвалидации. Ничто не мешает сделать процесс сборки надёжным, предсказуемым и на 100% воспроизводимым. Просто никто не думает, что это важно. NPM уже много лет находится в состоянии «иногда работает».


@przemyslawdabek: Кажется, что
rm-rf node_modules

является неотъемлемой частью рабочего процесса в проектах Node.js/JavaScript.

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



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

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

@rakhim: Когда приложение или сервис говорит «под управлением ИИ» или «на основе машинного обучения», я читаю это как «ненадёжное, непредсказуемое поведение, которое не поддаётся объяснению». Я держусь подальше от «ИИ», потому что хочу от компьютеров противоположного: надёжности, предсказуемости и логики.

Мы засунули виртуальные машины в Linux, а затем засунули Docker в виртуальные машины, просто потому что никто не смог разобраться с бардаком, который производят большинство программ, языков и их окружений. Мы накрываем дерьмо одеялами, чтобы не убирать его. Например, «единый бинарник» остаётся ОГРОМНЫМ преимуществом Go. Нет бардака == успех.


Окружающая среда Python настолько загрязнилась, что мой ноутбук объявили зоной экологической катастрофы.
Примечание. Агентство по защите окружающей среды Python хотело залить его цементом и захоронить с картинкой на входе — предупреждением для будущих цивилизаций об опасности использовать sudo для установки случайных пакетов


А зависимости? Люди бездумно ставят переусложнённые «полные пакеты» для простейших проблем, не думая о последствиях. Из этих зависимостей растут новые. В конечном итоге вы получаете дерево, которое является чем-то средним между фильмом ужасов (огромное и полное конфликтов) и комедией (нет причин, по которым мы добавили сюда эти пакеты, но вот они):



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

Что ещё хуже, ни у кого нет времени остановиться и выяснить, что произошло. Зачем беспокоиться, если всегда есть другой выход. Поднять новый инстанс AWS. Перезапустить процесс. Удалить и восстановить базу данных. Написать скрипт, который будет перезапускать ваше сломанное приложение каждые 20 минут. Включить одни и те же ресурсы несколько раз: тяп-ляп — и в продакшн. Двигайся быстро, не трать время на исправление ошибок.

Это не инженерная работа. Это просто ленивое программирование. Инженерная работа предполагает глубокое понимание производительности, структуры и ограничений того, что вы создаёте. Лепить халтуру из некачественного материала — совершенно противоположное занятие. Чтобы развиваться, мы должны понимать, что и зачем мы делаем.

Мы застряли

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

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



Но у кого есть на это время? Новые ядра ОС не выходили сколько, 25 лет? Это сейчас стало слишком сложным, чтобы просто взять и переписать. В браузерах накопилось столько пограничных ситуаций и исторических прецедентов, что никто не осмелится писать движок с нуля.

Сегодняшнее определение прогресса — или подбросить топлива:

@sahrizv: 2014 — нужно внедрить микросервисы для решения проблем с монолитами.
2016 — нужно внедрить Docker, чтобы решить проблемы с микросервисами.
2018 — нужно внедрить Kubernetes, чтобы решить проблемы с Docker.

или изобретать велосипед:

@dr_c0d3: 2000: напишите 100 строк XML, чтобы «декларативно» настроить сервлеты и EJB.
2018: напишите 100 строк YAML, чтобы «декларативно» настроить микросервисы.
В XML были хотя бы схемы…

Мы застряли, и никто нас не спасёт.

Бизнесу всё равно

Пользователям тоже. Они выучились принимать то, что мы делаем. Мы (инженеры) говорим, что каждое приложение для Android занимает 350 МБ? Хорошо, они будут с этим жить. Мы говорим, что не можем обеспечить плавную прокрутку? Окей, они свыкнутся с телефоном, который подтормаживает. Мы говорим: «Если не работает, перезагрузитесь»? Они перезагрузятся. Ведь у них нет выбора.

Конкуренции тоже нет. Все строят одни и те же медленные, раздутые, ненадёжные продукты. Случайный скачок вперёд по качеству даёт конкурентное преимущество (iPhone/iOS против других смартфонов, Chrome против других браузеров) и заставляет всех перегруппироваться, но ненадолго.

Наша миссия как инженеров — показать миру потрясающие возможности современных компьютеров с точки зрения производительности, надёжности, качества и удобства использования. Если нам не всё равно, люди потянутся. И никто кроме нас не покажет им, что такое возможно. Если только нам не наплевать.

Не всё так плохо

Иногда на пасмурном небосводе просвечивают лучики надежды.

Работа Мартина Томпсона (LMAX Disruptor, SBE, Aeron) впечатляет, она освежающе проста и эффективна.

Редактор Xi Рафа Левиена, кажется, построен на правильных принципах.

Джонатан Блоу для своей игры разработал язык компилирования, который компилирует 500 000 строк в секунду на ноутбуке. Это холодная компиляция, никакого промежуточного кэширования, никаких инкрементальных билдов.

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

Манифест лучшего мира

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


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

Поэтому я хочу заявить: нынешняя ситуация — полное дерьмо. Как инженеры, мы можем и должны, и сделаем лучше. У нас могут быть лучшие инструменты, мы можем создавать лучшие приложения, более быстрые, предсказуемые, более надёжные, использующие меньше ресурсов (на порядки меньше!). Мы должны глубоко понять, что мы делаем и почему. Мы должны выпускать продукты надёжно, предсказуемо, с самым высоким качеством. Мы можем и должны гордиться нашей работой. Не просто «учитывая то, что у нас было...» — никаких оговорок!

Надеюсь, я не одинок. Надеюсь, что есть люди, которые хотят того же. Я буду рад, если мы хотя бы начнём говорить о том, насколько абсурдно нелепа нынешняя ситуация в индустрии программного обеспечения. А потом, возможно, придумаем,
  • +0.14 / 7
  • АУ
 
  Поверонов ( Слушатель )
22 сен 2018 11:15:31

По мнению экспертов к такому состоянию в программировании привело всеобщее увлечение объектно-ориентированным программированием, породившем огромные иерархии классов. Как кто-то образно сказал - тебе нужен лишь банан, но система дает тебе его в лапах гориллы, а компилировать приходится все джунгли. Вот в джунглях и трудимся ...
Другим источником зла стали всё позволяющие лицензии opensource. Софтверные бизнесмены не желая сегодня платить за чужой софт вынуждают разработчик выбирать фриварные поделки ( из npm ) а завтра сами начинают ныть что подлое коммюнити их бросило и не патчит баги, не говоря уж о межверсионной компитабельности. История с перлом, выпустившим 6-ю версию абсолютно не совместную с 5-ыми никого не научила. Питон со 2-ой на 3-ю  повторил перловый выверт. До сих пор многие питоновые библиотеки так и не могут уйти в 3-ю версию по причине своих зависимостей от 2-ых пакетов которые никто уже не апгрейдит.
Но гром грянул. Выверт AWS по продаже времени использования чужого софта достал опенсофтников и лицензии стали менять не допуская их к облачному использованию. Будет интересно посмотреть на борьбу Оракла с Амазоном на поле MySQL.
  • +0.15 / 9
  • АУ
 
 
  Head790 ( Слушатель )
22 сен 2018 14:57:05

Вопрос только в деньгах, о чём писано в комментах. Можно хоть на Ассемблере всё переписать, и вместо использования сторонних библиотек(SSL, БД, VPN, текстовые библиотеки и прочие компоненты) каждый раз писать свои, но штат разработчиков и время, необходимое для отладки увеличится до бесконечности. Поэтому идут на целесообразные компромиссы, по возможности допиливают используемый компонент, и если не крысы - исправлениями делятся с сообществом. Знакомые разрабы свой продукт переписывают на С/С++, с кросс-платформенностью, и процесс этот длительный, сложный и дорогой.
 Опенсорс сам по себе хорошее явление, просто не все умеют правильно готовить. Без опенсорса, например, не было бы многих продуктов в рамках "импортозамещения"(ОС и процессоров), либо появились бы не в обозримом будущем. А так - взял Линукс, повозился некоторое время, и "принципиально новая революционная ОС" готова.

ЦитатаПитон со 2-ой на 3-ю  повторил перловый выверт.

Неприятно, но и преступлением не назовёшь(да и не всем нужна третья версия). Поддержка двух разных продуктов тормозит прогресс и тратит полезные ресурсы. Грядёт день, когда в WinXP не будут запускаться многие программы, даже если они способны там работать. И разработчики будут ликовать:) С новыми фреймворками МС, например, в XP туго, да и с современным железом(даже по Win7 не всегда делают драйверы, а это реально преступление:) ).
  • -0.02 / 1
  • АУ
 
 
 
  DarkRaider ( Слушатель )
23 сен 2018 21:10:42


Увы, нет - вопрос НЕ в деньгах. Вопрос в людях. Уже сейчас поколение "специалистов" настолько узковыделанное, что при любой ситуации выходящей за рамки гугления и учебника впадает в ступор, не зависимо от показанных бумажек и назначенной зарплаты. В прикладном программировании давно потеряна школа, как факт и это повсеместно. Собственно в системном, сейчас тоже одни дилетанты - о чём ярко говорят ОС последних десяти лет выпуска, независимо от разработчика. Плавно идём в красивую но бестолковую цифровую говнопомойку, при этом даже "на вид работающие вещи" по факту состоят из костылей.  Пока что, единственные места где сохранились нормальные понятия о создании программ - это оборонка и наука.
  • +0.08 / 5
  • АУ
 
 
 
 
  Head790 ( Слушатель )
23 сен 2018 23:50:38

Какая школа? Только в деньгах и проблема. Нет денег - нет нормального разраба/-ов(коллектив со своим лидером). В ВУЗах обучают в лучшем случае азам, считай обучают алфавиту и как им пользоваться(с низкоуровневыми языками так и есть), школы фактически нет, это не ракетостроение со своими традициями. Опыт приходит и стиль программирования со временем. Сейчас и после института много выпускников с потенциалом, да и не после ВУЗов тоже встречаются самоучки, по умнее некоторых.

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

"Я утратил всякие надежды относительно будущего моей страны, если сегодняшняя молодежь возьмет в свои руки бразды правления, ибо эта молодежь невыносима, невыдержанна, просто ужасна."(с) Гесиод почти три тысячи лет назад написал. В учебниках не пишут, как создать конкретный продукт, и на сложные вопросы там ответа зачастую нет. А гуглом(скорее дискуссиями на stackoverflow и подобных ресурсах) и профессионалы пользуются, т.к. реализаций одной задачи - множество, и коллективный разум с большой вероятностью родит лучший вариант, ну и своими навыками делятся, не вижу ничего зазорного. Не всем дано быть лучшими, так в любой отрасли, а некоторые некогда толковые профессионалы(в любой отрасли) достигнув предела начинают отрицать прогресс, и давят былым авторитетом в ущерб результату.

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


результат соответствующего менеджмента и ориентации на необременённого умом нетребовательного потребителя(массовый), а не проблема плохих разработчиков. 90% пользователей пофиг, Win10 у них установлена или Win95. Работает - и ладно, что внутри и сколько было затрачено индусо-часов им не интересно(таки потроха "десятки" не такие плохие, как её внешний вид). Для более быстрого развития и отладки порой жертвуют производительностью, где она не критична, но в итоге получается более удобный продукт за меньший срок, соответственно меньше затрат и больше прибыль.

Цитатаединственные места где сохранились нормальные понятия о создании программ - это оборонка и наука.

сильное заявление(с) Сергей Дружко. Что значит "нормальные понятия"? Делать качественно за копейки? Такого не бывает. Если есть корректное ТЗ, которое в "оборонке" способны составить, то никаких нерешаемых проблем у любого толкового и не очень разработчика(коллектив) не будет, даже специфичность программы и платформы не делает вопрос нерешаемым.
  • -0.02 / 1
  • АУ
 
 
 
 
 
  DarkRaider ( Слушатель )
24 сен 2018 00:59:02


1) Школа программирования - это не с 5 по 11 класс, это те инструменты, которые дают возможность решать нестандартные задачи и думать головой, а не соображалкой (хотя и она, безусловно, должна быть).
2) Говорю из собственного опыта, еженедельного общения - IT дерпартамент уровня города. Деньги ЕСТЬ. Коллективы есть. Лидеров хоть отбавляй. Толкового народа - единицы и ценятся они там весьма. Ровно та же ситуация с крупными интеграторами. Большие штаты управленцев (из них бывают и толковые). Профессионалы единичны. В головах дело, а не в деньгах.
3) По смежным некомпьютерным областям, ситуация когда возникшую проблему/задачу не удаётся решить ни за какие деньги, потому что нет соответствующего  профессионала- стала нормой.


Цитата...и коллективный разум с большой вероятностью родит лучший вариант...

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

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

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

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


Эта концепция сейчас настолько засела в головах менеджмента, что её напрямую прописывают в учебники и книги. "Да надо быстро слепить из говна и палок, подпереть костылями и показать "клиенту", после чего долго и упорно рефакторить код, чтобы убрать все косяки, добавив свежих и неизвестных, что опять же показывает клиенту наличие "процесса", продляя жизненный цикл программного продукта." Она стала настолько официальна и общепринята в среде заказчиков, что заказчик имеющий готовое ТЗ и готовый по нему же работать, в прикладном программировании - это уже невидаль.

ЦитатаЧто значит "нормальные понятия"? Делать качественно за копейки?

Нет, писать оптимальный код, наилучшим образом решающий отражённую в ТЗ задачу и выдавать в результате работы не говнокостыли и бэтаверсии, а продукт готовый к работе.
Именно эти принципы сейчас используются в оборонке (намеренно) и в науке (обычно добровольно). Про копейки не было речи нигде - подобная разработка процесс дорогой.
  • +0.12 / 7
  • АУ
 
 
 
 
 
 
  Head790 ( Слушатель )
24 сен 2018 14:38:25

должна быть, но её нет. Уставшие от жизни преподаватели пенсионного возраста уже практически ничему хорошему не научат. Самообразование - залог успеха. Без этого институт даст в лучшем случае общие принципы.

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

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

Точка зрения тех, кто хочет и рыбку съесть, и руки не испачкать. Знакомо. Тупиковая ветвь.

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

Альфа-версия - часто из говна и палок сделана, и с релизом кроме интерфейса ничего общего не имеет. Это норма(с), ибо позволяет заказчику увидеть рабочий экземпляр и внести корректировки в ТЗ.

Вы точно про разработку софта слышали? Перед выпуском готового продукта, релиза, всегда выпускается множество сборок(альфы-беты), банально для тестов.
  • -0.04 / 2
  • АУ
 
 
 
 
 
 
 
  Удаленный пользователь
24 сен 2018 15:42:58


Ревью кода это не разум, это на 90% формальная проверка на DRY, KISS, SOLID. Быстро и эффективно без подавления творческого начала девелопера.



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



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

Альфа-тесты - это каменный век на сегодня.


Такое впечатление, что вы остановились в методологии лет 15 назад и до сих пор сидите в водичке (waterfall). SCRUM, CI и TDD прошли мимо вас.

Сейчас в тренде 2-х недельные спринты и ежемесячные продакшен релизы. Препродакшен (бета по старому) вообще идет непрерывно, собственно как и тесты.
  • -0.01 / 1
  • АУ
 
 
 
 
 
 
 
 
  Head790 ( Слушатель )
24 сен 2018 16:30:27

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

Многие студенты и так параллельно учёбе работают. Мой однокурсник с факультета не связанного с программированием, уже вполне себе кодил на 3 курсе работая официально. После института ему самому выдали ассистентов. А "студенты-отличники" зачастую их cебя ничего особого не представляют.

При чём тут Ангуляр? Приложения с веб-интерфейсом - не верх технического совершенства, а пример, когда нужно сразу и всё.

*рукалицо.жпг* На живом клиенте что ли тестировать?

Отнюдь. Я не разработчик, но скорее ваши познания где-то в прошлом перестали обновляться. 

Есть такое. Альфа при таком подходе - считай ночная сборка, беты/RC никуда не девались.
  • -0.05 / 3
  • АУ
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
24 сен 2018 16:37:02

Спасибо, посмеялся. Вы, похоже, вообще не понимаете что такое разработка софта индустриального уровня в серьезных организациях, вроде ведущих технологических лидеров, бирж и банков.
Будем считать, что вопрос исчерпан Улыбающийся
  • +0.01 / 4
  • АУ
 
 
 
 
 
 
 
 
 
 
  adolfus ( Слушатель )
27 сен 2018 00:15:04

Технологический лидер индустриального уровня – это, когда например, Локхид или Цейс, Сименс или Роллс-Ройс, Алмаз-Антей или Сухой. Я представить даже не могу, чем они могут "играться" до того, как софт не будет поставлен в опытную эксплуатацию в рамках жестко прописанного процесса, подлинник которого прошит, пронумерован и скреплен печатью. Технологические лидеры, т.е. т.н. хайтек,  абсолютно не используют так называемые "современные методы" разработки софта (привет, agile) и использовать это разводилово не собираются. Хайтеку нет разницы, год ему или он сам себе будет делать софт или три – он лидер и монополист, ему важнее надежность и стабильность, нежели быстрота разработки. Для них существуют специальные стандарты ANSI, ISO/IEC, ГОСТ, описывающих все этапы жизненного цикла софта, и не только этапы, а и общие требования. Я не очень понимаю, как можно из говна и палок набросать, например, систему управления турбореактивным двигателем магистральника, загрузить ее на изделие и "дать поиграться" заказчику. Интерфейс у этой системы, кстати – кокпит того самого магистральника.
Биржи и банки – это такие же обычные продавцы, как и все остальные, просто они продают воздух. Софт. которым они пользуются, в принципе мало чем отличается от софта, который используется продавцом секондфуда "минутной доступности" в соседнем подъезде/подвале.
  • +0.01 / 1
  • АУ
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
27 сен 2018 00:27:46

Навскидку - открытая позиция в Сименсе. В описании работы

- Working in an agile development environment whilst following Scrum and SAFe principles.

Или вообще Agile Coach 80 - 100% в том же Сименс.

В общем - привет Agile.

Или выбросим быстренько Сименс из технологических лидеров?
  • -0.02 / 2
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
  adolfus ( Слушатель )
27 сен 2018 09:24:13

Сименс кроме технологического лидерства занимается разного рода бытовой техникой и кухонным оборудованием, где он даже не в десятке, а по чайникам и утюгам на уровне какого-нибудь ладомира или витька. Также присутствуют в цеху фейкоплетов, выпускающих IOT-холодильники и прочие пылесосы. Последние сами вызывают лакеев, которые меняют им фильтры и моют мусороприемники. Почему бы там не использовать модные "молодежные" методы разработки ПО. Хотя я не представляю, как можно использовать эти методы для разработки прошивок в те же утюги?
Когда я упомянул Siemens как технологического лидера, а имел ввиду его САПР'ы, софт, который прошивают в станки, турбины и прочий хайтек. Мой бывший аспирант, занимавшийся алгоритмами упреждающего управления системами, в середине 2000-х уехал в Чехию и сегодня работает в подразделении, которое занимается разработкой управляющих систем для обрабатывающего индустриального оборудования (станки по изготовлению изделий сложных форм, типа лопаток в турбины, корабельных винтов и прочих поверхностей). Все компоненты, начиная от модулей в САПР, до прошивок, контроллеров и прочих вычислителей, куда все это заливается. Под их станки заказчики строят отдельные цеха. Там свой внутренний жесткий регламент по жизненному циклу на основе ANSI ISO/IEC вплоть до постановки на производство и никаких "молодежных" технологий.
  • +0.07 / 4
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
27 сен 2018 10:41:16




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

Пытаетесь выкрутиться?

Вы просто не в курсе, что даже жизненный цикл "на основе ANSI ISO/IEC" никак не ограничивает предприятие в использовании аджайл в управлении проектами. И этим пользуются и в Сименс, и в АББ и в Цейсе, где работают мои бывшие коллеги - и откуда это мне известно.

Кстати, системы управления транспортом - это ведь не относится к утюгам и кухням? Это ведь очень ответственное направление, не менее серьезное, чем турбины и станки?

Вот еще руководящая позиция  в Сименсе на этом направлении, где требуется не просто знание, но и сертификация специалиста по аджайл технологии.

Вобщем спасибо, слив защитан.
  • -0.02 / 2
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  qurvax
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  пОМиДор ( Слушатель )
25 сен 2018 08:46:34
Сообщение удалено
пОМиДор
24 июл 2023 07:38:50
Отредактировано: пОМиДор - 24 июл 2023 07:38:50

  • +0.06
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
25 сен 2018 15:42:42

"Мелко, Хоботов" (с)

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

Учитесь завидовать молча.
  • -0.02 / 2
  • АУ
 
 
 
 
 
 
 
 
 
 
  пОМиДор ( Слушатель )
26 сен 2018 09:35:04
Сообщение удалено
пОМиДор
24 июл 2023 07:38:47
Отредактировано: пОМиДор - 24 июл 2023 07:38:47

  • +0.00
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
26 сен 2018 11:41:42


Труд фрилансеров в Европе и США используется компаниями для быстрого "затыкания дыр". Платят им, как правило, не больше, чем постоянным сотрудникам, зато нет нужды платить за них разный социал и пенсии. Срок работы фрилансера обычно 1-3 месяца и работает он уже на готовой инфраструктуре и методологии. Если фриланс не сделает работу хорошо - его не будут больше никуда приглашать. 

Другое дело - квалифицированные контрактники, которые "стоят" фирме заметно дороже постоянных сотрудников, обладают очень высокой квалификацией и нанимаются на 6-12 месяцев минимум. И такой специалист делает работу на "отлично" и за контрактами не бегает - на него всегда есть спрос. Клиенты часто согласны ждать по 2-3 месяца, но получить на пол-года - год спеца, который сделает работу на 110%  но за очень хорошие деньги - 120-150% от "стоимости" штатного сотрудника.



Это заметно из ваших постов - есть некоторая нотка разочарования Улыбающийся



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

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

А вот при традиционном ватерфалле работа обычно разбивается на задачи в 5 и более дней и тогда есть время расслабиться.



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

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

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



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



Это вы о чем? Девелоперской компании поставить сервак для тестов - это вообще ни о чем. Для начала берете старый комп с линухом, ставите дженкинс или тимсити или травис или бамбу, пишете десяток скриптов и все. Любой грамотный дев сделает это максимум за неделю. Потом постепенно все обрастет нужными тулзами, метриксами и прочим. Затраты меньше, чем зарплата одного дева за месяц. Только не говорите, что в софтверной фирме нет старого компа Веселый



Вот теперь видно, что вы-то как раз и не знаете - где и как применять CI и TDD Улыбающийся Какие 3 сервера? какие 3 админа?
1С - коробочный продукт, пользователь ставит, конфигуряет и потом саппортится у производителя или у тех парней, что ставили и конфигуряли. Если вы делаете добавочный продукт на базе 1С, то вы сделаете, как я написал выше - поднимете один сервак из дешевого компа и будет вам в фирме счастье, потому что регрешен тесты еще никто не отменял, а регрешен баги - самая мерзкая вещь в поддержке проектов, особенно старых, особенно когда есть ротация в коллективе.

К слову я использую аджайл, CI и TDD даже в своих хобби проектах - удобно, прекрасно организует и избавляет от потерь времени.



Ветку листать лень, а то, что вы прошли через менеджера команды поддержки - заметно, т.к. по вашим постам заметен недостаток опыта в разработке, внедрении и авторском сопровождении разработчиком софтверных продуктов (3 уровень саппорта).
  • -0.02 / 2
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
  пОМиДор ( Слушатель )
26 сен 2018 14:58:42
Сообщение удалено
пОМиДор
24 июл 2023 07:38:45
Отредактировано: пОМиДор - 24 июл 2023 07:38:45

  • +0.01
 
 
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
26 сен 2018 16:13:01


Я не знаю, может в России это так, но обычно в Европе и Штатах фрилы получают меньше, чем на постоянке. Они просто не хотят или не могут работать постоянно.



Еще раз - на западе контрактники получают БОЛЬШЕ чем постоянщики. Если контрактник продается через хедхантера, то последний берет процентов 10 от стоимости контракта и все. Скажем, постоянщик получает 10К в месяц, за работу контрактника платят 17К, откуда контрактнику на руки достается примерно 15К грязными, но уже с выплаченой половиной социала.

Продвинутые контрактники работают через собственную фирму, поэтому неплохо отбивают затраты. Но продвинутые это от 20К в месяц.

Аутсорсеры это совсем другая история.



Ну как сказать, средний тим 5 человек, по 2-3 минуты на каждого - кофе выпьешь, стоя на ногах, и это все. Хороший скрам мастер может еще быстрее провести митинг, примерно минута на человека.



Если у вас нет верификации пользовательского ввода - вы вообще не можете говорить о готовности системы. Юнит тесты обязаны это все проверить. Так что это как раз может быть панацеей в вашем случае.

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



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



То, что я не знаю, означает лишь то, что заказчик этого не знает. Но так бывает довольно часто.



Форму передачи определяет заказчик. Если проект это некоторый компонент для уже работающей системы, то к нему идет руководство по использованию и техдокументация, например сделанная на JDoc или аналоге. Руководство включает в себя все инструкции как продукт ставить, как тестировать, как запускать. Персонал заказчика все это делает за пару дней - им, по сути, надо только скрипты запускать и все, они часто в код даже не лезут.

Еще вариант - заказчик использует аудиторскую фирму, которая проводит тестирование и верификацию за небольшие деньги, т.к. у аудитора есть вся инфраструктура. Скажем, аудит проекта в 500К будет стоить примерно 10К, это включает установку софта, прогон всех тестов, верификацию данных, оценку уязвимости, оценку документации. Если нет больших корректировок, весь процесс занимает неделю-две.

После приемки если предусмотрено сопровождение продукта заказчик присылает баг-репорты, обратно получает фиксы. За регрешены в этом случае отвечает исполнитель, т.к. у него точно есть CI сервер. Если у заказчика есть свои ресурсы разработчиков, то они тоже прогоняют тесты перед выводом кода в продакшен. Ну у всех по разному. Но стороннего разработчика к продакшену никто не пускает. 




Я в холиварах не участвую, мне фиолетово - интел или амд, винда или линух.

Просто те высказывания, с которых начался данный флейм, были очень далеки от той реальности, в которой сейчас находятся ведущие разработчики софта в мире.

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

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



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

Но вы, кстати, так и не привели ни одного примера отрицательного использования аджайла Подмигивающий
  • 0.00 / 3
  • АУ
 
 
 
 
 
 
 
  DarkRaider ( Слушатель )
24 сен 2018 22:11:38

Вам видимо сильно в жизни не повезло. Сочувствую.

ЦитатаЕсли не секрет, какого порядка зарплаты разрабов и какой город? Тысяч 80 есть?

Не секрет - город Москва. Средний уровень 100-150.

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

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

ЦитатаВы точно про разработку софта слышали? Перед выпуском готового продукта, релиза, всегда выпускается множество сборок(альфы-беты), банально для тестов.

Смею заметить, что Вы, очевидно, про нормальную разработку только слышали, так как все альфы и "куча сборок" для проекта с хоть какими то требованиями по надёжности и эффективности, остаются "за закрытыми дверями" и никогда не допускаются вывода в эксплуатацию. Просто попробуйте себе представить нечто более другое чем "мегасайт для оптовиков" , например контроллер в блоке управления агрегатом - цена "альфа версии" в работе - может оказаться ценой сломанной производственной линии или чьей то жизни.
  • +0.05 / 3
  • АУ
 
 
 
 
 
 
 
 
  Удаленный пользователь
25 сен 2018 08:21:55

Ха. Да только в путь. Даже не альфа - демо. Целая куча демо, пруф ов концепт и т.д. - на всякие выставки, демо заказчикам и т.д.
А через какое-то время сейлз решает что, раз оно написано давно и куча дем уже было, то оно уже, как то грязное бельё у студента в шкафу, отлежалось и уже чистое - ну т.е. релизного качества, и продает его с дедлайном через 2 недели. И тут для разработчиков начинается веселье. Ну или ИБД если уж совсем глушняк - но уж овертаймы и работа по выходным - это всенепременно.
Не сайты - вполне себе контроллеры. Ну не производственных линий, к счастью.
  • +0.00 / 0
  • АУ
 
 
 
 
 
 
 
 
  Head790 ( Слушатель )
25 сен 2018 20:58:56

Чего мне сочувствовать? Я не программист.

зарплата веб-разработчика. Опытным сишникам тысяч 200 платят, начинающим - те же 100-150.

Всё равно, не пойму, что здесь зазорного. 

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

Я сайты себе и не представлял, это самый простой и беспроблемный случай. В контроллерах(опять же ПО разной сложности может быть) ПО не делают громоздким, и обновление там вообще может не потребоваться ни разу за многие годы эксплуатации(станки с ЧПУ, военная техника или какой-нибудь контроллер лифта). А для прикладного ПО разные способы разработки годятся и требования другие, в том числе с ночными сборками для желающих потестировать и помочь проекту(бесплатно или за лицензию, например), и таких много. Очевидные вещи.
  • -0.05 / 3
  • АУ
 
 
 
 
 
 
 
 
 
  DarkRaider ( Слушатель )
26 сен 2018 08:23:40


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

Вас, таки, ничему хорошему не научили, даже если Вы сварщик, а не программист.

Цитатазарплата веб-разработчика. Опытным сишникам тысяч 200 платят, начинающим - те же 100-150.

Сдаюсь. У вас явно больше, длинее и толще, даже в холодной воде.

ЦитатаВсё равно, не пойму, что здесь зазорного.

Зазорного ничего, если Вы уже на 2й странице потеряли нить своих рассуждений - напомню:

1) на слова о том, что любая нестандартная ситуация выходящая за гуглопоиск вызывает у большинства современных программистов ступор
2) Вы изволили ответить, что вершина - это коллективный разум, который всегда выдаёт лучший результат, даже в "review" кода, который у Вас без этого разума не происходит
3) после фразы о том, что "коллективный разум" не выдаёт лучших решений, а выдаёт первые несколько рабочих у Вас изволили начаться "непонятки".
  • +0.00 / 0
  • АУ
 
 
 
 
 
 
 
 
 
 
  Head790 ( Слушатель )
26 сен 2018 10:44:15

Они ж не все такие. Да и самообразование никто не отменял.

При разработке софта 90% ситуаций - не стандартные.

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

Да всё понятно, с вами. Вот взять гипотетическую "уникальную импортозаместительскую ОС" или такой же софт для роутеров/маршрутизаторов, которую мировое сообщество не прощупало, а проводилось только тестирование внутри конторы, я уверен, что если вносились серьёзные изменения в оригинал(если не ограничились перебивкой копирайтов и лицензий), то получилось потенциально дырявое решето, которое . 

Цитатаа выдаёт первые несколько рабочих

вы точно далеки от разработчиков. Цель - не вариантов наплодить, а "родить" оптимальный.
  • -0.03 / 2
  • АУ
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
26 сен 2018 11:46:08


Ерунда. Как раз в разработке софта 95% задач - стандартные и повторяющиеся из проекта в проект. Это они для самоучки или студента не стандартные, а для любого дева с опытом в 10 лет - все уже рутина.
  • 0.00 / 4
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
  Head790 ( Слушатель )
26 сен 2018 12:33:51

Рутина, или то что разраб с ней справляется, не означает, что задача стандартная и повторяющаяся. Это только различных компонентов касается, которые нет смысла писать с нуля самому. Всё остальное пишут сами без оглядки на других. И где в этом случае "стандартность"?
  • -0.05 / 3
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
26 сен 2018 13:02:45

Вы не программист, поэтому не знаете, что 90% алгоритмов, используемых в программировании, были давным-давно описаны стариком Кнутом. Все, что делает современный образованный девелопер, так это применяет эти базовые алгоритмы в различных сочетаниях и методиках.

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

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

Вариабельность работы может быть только в условиях использования продукта или ограничениях. Если вы работаете с пользовательскими сервисами - вы уже несколько раз реализовали добавление, изменение, сохранение и удаление пользователей. То - же самое с данными - вы уже делали типовой набор CRUD операций для всех данных. Вы уже конструировали типовые запросы в базу для выборки набора данных или статистики. Вы уже использовали типовые методы кеширования данных, типовые методы визуализации данные, у вас уже есть готовые паттерны пользовательских сценариев. Это 90% работы во всех проектах и для девелопера с 10-летним стажем это все давно знакомо.

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

Тут и команде будет интересно и скилзы вырастут. Но даже в этом случае в 90% случаев девы будут использовать алгоритмы, которые уже были неоднократно реализованы. Ну такая вот специфика разработки софта.
  • 0.00 / 6
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Head790 ( Слушатель )
26 сен 2018 13:57:50

Алгоритмов и без него хватает. Вы тоже не программист, т.к. им эта беседа совершенно неинтересна.

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

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

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

Цитатадевелопера с 10-летним стажем

почему именно 10-летним? Разве что если считать пять институтских лет. Сам знаю сорокалетних программистов-краснодипломников, со старой работы, которые кроме как Дельфи не осилили, и уже несколько лет не могут выпустить финальную версию своего продукта(грубо говоря парсер логов, со своей спецификой, и взаимодействием с оборудованием). 

Новшества используют, . Некоторые здесь это называют "хипстерством", не понимая кто они такие и какое отношение их вид имеет к разработке. В гугле, вон, гомосеки работают, и ничего)

Существующие алгоритмы это не залог решения некой определённой задачи.
  • -0.05 / 3
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
26 сен 2018 15:39:18


У меня первая запись в трудовой - инженер-программист, середина 80-х. С тех пор я из профессии не уходил. Всю жизнь в ИТ разработке.



Еще как навешивают, если манагер чистый МБА-шник.



При чем тут копи-паста? Непонимающий 



Паттерны это не кирпичики и не библиотеки, вы вообще не понимаете о чем речь. Покурите хотя бы вики
 


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

Я много поработал в Европе и Штатах, и там в серьезных учреждениях, вроде банков и финансовых сервисов, где цена ошибки ну очень велика, большая часть девов в возрасте 40-55, моложе 30 вообще не видно. Требуют опыт от 7+ лет


Обалдеть... Т.е. каждая конкретная задача требует разработки абсолютно новых алгоритмов?!
Зачем тогда студенты учат Кнута и прочее в институте столько лет?
  • -0.04 / 3
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  TAU ( Слушатель )
27 сен 2018 00:40:07

1. Мил человек, ты думаешь, умнее кажешься? Наоборот! Слыхал про русские слова, обозначающие это же?


2. Серьезные учреждения в Штатах, милок - это АНБ, НАСА и Пентагон. Но тебя, видать, они не звали...


3. Во-первых, далеко не все задачи описываются стандартными алгоритмами. Доля их явно поболе десятой. Во-вторых, не учат студенты много лет Кнута в институте) Со знанием дела говорю.
  • -0.02 / 1
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  rat1111
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  EugeneZ
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Head790
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  adolfus
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Oleg K.
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  TAU
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  adolfus
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  olenevod ( Слушатель )
11 окт 2018 20:49:28

неужто нашевсё неправ?
Цитата
Быть можно дельным человеком
И думать о красе ногтей

  • +0.00 / 0
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  qurvax
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  ps_
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  VictorS
  • Загрузить
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  TAU ( Слушатель )
27 сен 2018 00:34:27

Нда... Прямо за версту пахнуло душком... "Современного образованного девелопера"... 


Апломба - вагон. Понятия о предмете - крохи. Еще и поучать лезет ведь...


Тьфу...
  • -0.02 / 1
  • АУ
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
26 сен 2018 11:54:49


Это хорошо видно. Отчего же такая уверенность в рассуждениях о том, как работают программисты?



Сайт в 5 статических страничек - это простой и беспроблемный случай. А современный торговый портал или сервис - очень серьезный проект.



Вы сильно отстали от жизни - современные станки с ЧПУ регулярно обновляются. Обычно раз в год приезжает инженер от производителя и обновляет софт. Могут быть обновления по пожеланию заказчика - новые алгоритмы обработки или поддержки нового железа - разные подающие устройства, карусели, измерительные узлы. Некоторые станки вообще включены в Интернет и получают обновление чуть ли не автоматом.

ПО в контроллерах таких станков может быть очень продвинутым и "громоздким" (до 1млн строк кода и больше). Я работал в этой индустрии более 5 лет и хорошо знаю, о чем говорю.

Мой совет - старайтесь говорить о том, что знаете, а не о том, что вам кажется.
  • +0.04 / 6
  • АУ
 
 
 
 
 
 
 
 
 
 
  Head790 ( Слушатель )
26 сен 2018 12:46:31

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

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

Windows 10 тоже часто обновляется. Эти обновления в основной массе не жизненно важны, и в случае с оборудованием(там от договора зависит, как, сколько и по чём будут обновлять, не всегда руководствуясь чистыми намерениями). 

И откуда известно сколько там строк, если код закрыт, и даже наладчики этого не знают? 

Советы себе оставьте.
  • -0.08 / 5
  • АУ
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
26 сен 2018 13:16:14


Вы говорите не о готовом блюде, вы все время пытаетесь говорить о процессе приготовления. А вот тут уже надо быть поваром.



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

Примеры косых и кривых магазинов, сделанных студентами - это ни о чем. Чаще всего студенты берут готовые коробочные решения и впаривают заказчику как собственную свою работу. Я с этим сталкивался неоднократно.

Давайте рассматривать примеры качественных он-лайн торговых площадок - и там студентов в команде не будет. А будет квалифицированная команда человек 5-8 с опытом 5+ лет после института.



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

Про договоры не понял - это тут к чему?



Ну я же работал в индустрии по производству ЧПУ достаточно долго, для сотрудников код открыт - как иначе его сопровождать или делать новый софт? Вот и знаю. А наладчики обычно этого не знают - это обычный инженер, он приезжает с флешкой и знает процедуру обновления и наладки станка. Этого достаточно. 

Посылать девов для апдейта это очень дорого, ему надо новые фичи делать, а не в командировках водку трескать.
  • -0.01 / 3
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
  Head790 ( Слушатель )
26 сен 2018 14:19:59

Типы релизов - это поверхность. Про них могу говорить.

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

Ну конечно. 1-2 студента вполне способны магазин сделать, который будет работать. А готовые любой может использовать, программистом быть не нужно.

Вы точно далеки от разработки. Никому не известно, кто там работает. После института сразу не подпускают к сложным задачам, по способностям смотрят. Сам наблюдал.


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

Код станков закрыт, и видеть его посторонним не нужно, всё равно внести изменения не смогут без нарушения гарантии, на что никто не пойдёт. Сименс, например, за это деньги требует(опять же, кривые руки туда никто в здравом уме запускать не станет, ещё и доплачивая за возможность).
  • -0.02 / 1
  • АУ
 
 
 
 
 
 
 
 
 
 
 
 
 
  Удаленный пользователь
26 сен 2018 16:17:28

При чем тут закрытость кода для посторонних если вы утверждали, что код для станков ЧПУ не обновляется? Он обновляется производителем и не всегда за деньги.
  • -0.04 / 3
  • АУ
 
 
 
 
 
  Удаленный пользователь
24 сен 2018 06:20:11

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

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

В силу различных ментальных моделей заказчик зачастую даже не озвучивает важные для себя детали в ТЗ, т.к. считает их само-собой разумеющимися. То же самое происходит и со стороны исполнителя. Результат - постоянное недовольство заказчика, завышенные сроки, тонна "костылей" в коде.
  • -0.01 / 1
  • АУ
 
  qurvax ( Слушатель )
24 сен 2018 22:55:47

Угу. ВзгрустнулосьУлыбающийся И подумалось мне , что разгадка одна. Не стоит надеятся, что нечто, созданное для и заради заработка денег (а таково подавляющее большинство "продукта" IT-индустрии в общем смысле), будет наилучшим из возможных образом выполнять какую-то другую функцию, кроме этого самого заработка этих самых денег. Се ля ви.
  • +0.04 / 3
  • АУ
 
 
  Podli ( Слушатель )
25 сен 2018 07:38:23

Таки да, капитализьм-с. Бабло побеждает зло, все решения решаются маркетолухами. Реалии таковы, что говнопродукт, слепленый на коленке впопыхах с кучей вкоряченых модных свистоперделок приносит больше бабла. Потому такое и клепают.
  • +0.00 / 0
  • АУ