Подарки от программис'тов
Многие спрашивают, а что нужно знать для программирования? И отвечают: язык программирования / алгоритмы. Но оказывается этого очень мало.
Поэтому давайте собирать примеры что может вытворить самый обычный программист.
Ну вроде-бы хорошо иметь на сайте только картинки в формате png, могут думать некоторые.
И грузят 600Кб картинку на главную страницу сайта, при том что аналогичная картинка jpg размером меньше 100 кб.
Причем картинку стыбрили с платного сайта, один фиг для разработки.
Поручили челу заняться управлением пользователей. Отлично, нашли опес-соурсе проект, его докер контейнер, загрузили, настроили, работает.
Месяц, работает/два, проблем нет - маладец. Есть только небольшой ньюанс - база располагается в памяти контейнера, не на диске. Но об этом никто не знает до тех пор пока не потребовалось перегрузить сервер.
И опять таки -причем тут программист?
Притом, что все хотят человеков-оркестров, а платить в лучшем случае за одну должность. А ФААНГов с должностями "я отвечаю только за левый верхний пиксель этой кнопки - за остальное отвечают другие" на всех не напасёшься.
AlexNek, в чём проблема, не понимаю? Вы хотите, чтобы всё было изначально хорошо спланировано, сделано и работало как часы? Вас же уволят сразу после того, как это произойдёт. Если это не ваш личный проект или вы не владелец бизнеса, то делать всё идеально - себе дороже. Пока есть проблемные проекты и баги, которые нужно править - вы при работе. А то некоторым надоедает "дураков обучать", и лишь заработанные семь знаков только и помогают пока держаться без работы. А работу без дураков годами найти не могут. А её и нет.
Поручили челу заняться управлением пользователей. Отлично, нашли опес-соурсе проект, его докер контейнер, загрузили, настроили, работает.
Месяц, работает/два, проблем нет - маладец. Есть только небольшой ньюанс - база располагается в памяти контейнера, не на диске. Но об этом никто не знает до тех пор пока не потребовалось перегрузить сервер.
А вот я не знаю, что такое докер, и не умею этим пользоваться. У меня бы такой ошибки в принципе не возникло. Незнание - сила. ))
А вы этого чела поди, когда принимали, спрашивали, знает ли он докер. - Конечно знаю. - Вы приняты.
PS. И чё с пользователями? Всех удалили?
Притом, что все хотят человеков-оркестров, а платить в лучшем случае за одну должность.
это отмазка
Прибавь мне 50% к зарплате и я буду писать тот же код. Вероятность багов не уменьшится.
А если отбавить? А если просто не повышать?
Сейчас пошла мода на WebP см. https://ru.wikipedia.org/wiki/WebP, покуда многие браузеры (в том числе и Microsoft Edge) на движке WebKit. Я тоже jpeg/png картинки в WebP конвертирую, они весят меньше чем jpeg и png.
Прибавь мне 50% к зарплате и я буду писать тот же код. Вероятность багов не уменьшится.
Надо сразу в коде ставить кучу проверок и везде где можно try catch блоки. Имхо это ещё зависит от языка программирования, допустим если программировать на Ada или Pascal там строгая типизация, меньше ошибок в коде, допустим в Ada если создать новый тип на базе готового (допустим Integer), и присвоить (скопировать) значения базового типа, то произойдёт ошибка во время компиляции. А в JavaScript, PHP, Python абсолютно всё равно какой тип данных, там и может произойти ошибка, а в Си и Си++ можно в свою или чужую память залесть и подпортить. Допустим:
A это тип Integer B это тип A A = 5 B = A - тут произойдёт ошибка, т.к. переменная B это не Integer, а новый тип A.
According to Google's measurements in November 2011, a conversion from PNG to WebP resulted in a 45% reduction in file size when starting with PNGs found on the web, and a 28% reduction compared to PNGs that are recompressed with pngcrush and PNGOUT.
Фигня какая-то. Сравнили с png, а надо было с jpeg. png плохо сжимает полноцветные картинки - он для малоцветных предназначаен, без градиентных переходов. Обычный jpeg сожмёт обычную фотку на порядок лучше, чем png. Если у них лишь 45% получилось, то он хуже jpeg.
И вообще, когда речь идёт лишь о 45%, то особой разницы нет. Главное, что либы джаваскриптовые по полмегебайта это ок, или первая загрузка сайта со всем этим джаваскриптовым дерьмом в несколько мегабайт - тоже ок. А картинки по 50-200 кБ - нет.
Ещё помню критику дотнета примерно в 2010 - он же целых 200 МБ весит! Мы не можем столько один раз загрузить (это когда фильмы по нескольку ГБ качались как нефиг делать). Им дали клиенсткий профиль на 50 МБ - тоже много! А вот на каждый запрос по нескольку МБ из разжиревших сайтов "на современных технологиях" выкачивать - это норм. Похоже на плачь и жалобы Джобса о флеше - какую только фигню не начнёшь нести и раскручивать в инете, чтобы от конкурентов избавиться.
и везде где можно try catch блоки
А что это даст? Ну наставили вы этих блоков, и теперь программа не вылетает... а что делает? Логирует всю эту фигню, выдавая стандартное сообщение "произошла ошибка, щас закроюсь"? А клиенту какая разница, закрывается прога с предупреждением от фреймворка с эксепшеном, или с красиво оформленным окном об ошибке? Она ж всё равно закрывается.
Слышал мнение, что в дебаге прога должна бросать все исключения, а не перехватывать (чтобы быстрее баги выявлялись), а в релизе (т.е. на продакшене) - перехватывать лишь для логирования. В принципе, логично.
А то некоторые наперехватывают исключений, а потом не делают с ними ничего - шито-крыто, прога без багов, не падает. Просто считает всякую фигню, а не то, что надо. У джаваскриптизёров это вообще by design - какая бы хрень ни пришла в переменную, она валидна по умолчанию. Чтобы от этого уйти, громоздят вокруг js тонны костылей по проверке типов и прочих валидаций, которые в нормальных языках из коробки идут.
Скажите, а какого это хрена на некоторых сайтах я копирую выделенный фрагмент текста, а мне в буфер обмена попадает ещё и приписка типа "скопировано с сайта такого-то"? И чем дальше, тем чаще. Там эти джаваскриптизёры не охренели ваще вконец? Я, ять, и так скопирую ваш охеренно важный и секретный текст, залезя в код страницы, но это будет неудобно. А похоже удобство - последнее, о чём вы, ски, думали, делая ваши джаваскриптерские сайтопомойки.
С какого хрена джаваскриптиз может перехватывать то, что ко мне в буфер обмена попадает? Алё, гараж, это флеш-то дырявый был?
Или всякие твиттеры-хриттеры, инстаграммы. Нельзя просто взять и скопировать картинку - она у нас хитровыепонно запрятана в гору стилей. В коде её можно вытащить, продравшись через тонну нагенеренного дерьма, но это неудобно. А похоже удобство - последнее, о чём думали разработчики твиттеров-хриттеров.
Или твиттерная система комментов. Чтобы почитать 10-20 комментов, ты должен, ска, как пианист сделать 5-7 нажатий. А почему в таком популярном Телеграме видео - это просто долбаный прямоугольник с одной функцией - запустить видео на полной громкости? Перемотать нельзя, громкость изменить нельзя. Ничего нельзя. Но мы ска модерновый мессенджер, можно делать "ботов" (скрипт киддис торчат от радости), и ваще идити все к нам. Хотя у нас лысый мессенджер без функций.
Современное хайпожорное айти - ядский цирк с конями и крикливыми "инфлюэнсерами", смузями и барбершопами. Одно слово - джаваскриптизёры...
Когда эта вся нынешняя популярная кодла только начинала, многие скептически говорили - да ну на, не может быть, чтобы сервис "запости одну картинку" или "напиши СМСку не больше 128 символов" взлетел. Ну знаете, есть же готовые мессенджеры, где уже давно дохрена функций, крутые чаты, видео, конференции, и чтобы выйти нормально на рынок, надо сделать типа не хуже. Нет?.. Они и не взлетели бы, если бы в их раскрутку не влили бабла на два порядка больше, чем стоила их разработка. Но так-то можно и натуральное овно популярным сделать и заставить жрать.
А если отбавить? А если просто не повышать?
если долго не повышать, то тоже ничего не изменится
Просто другую работу буду искать
А убавить не получится
Месяц, работает/два, проблем нет - маладец. Есть только небольшой ньюанс - база располагается в памяти контейнера, не на диске. Но об этом никто не знает до тех пор пока не потребовалось перегрузить сервер.
Я бы не был так уверен про "память". Очень может быть что погромизд как всегда не стал ничего читать. Пока контейнер работал, всё писалось на диск. Убили контейнер - очистили все файлики. Ой.
А в документации могло быть написано, мол, не забудьте создать volume, он будет использоваться для записи БД.
всё было изначально хорошо спланировано, сделано и работало как часы?
Нет, но есть же правила хорошего тона. Глянул счас в каталог картинок: 1.6Мб, 300 Кб, 250Кб и т.п.