Search
Write a publication
Pull to refresh
9
0.1
Игорь @ZurgInq

Программист

Send message
В статье автор запутался и запутал читателей. Во многих местах упоминается php. Вплоть до:
Тут я и вижу превосходство phoenix. Из коробки у нас php (Phoenix), ...

При это у php есть несколько созвучный Phalcon.
Если говорить про Москву. Средней уровень зарплаты в Москве за 2018 год почти 90_000, в Ижевске 30_000. Откуда взялась разница в цене на кофе тут вроде понятно.
Средний уровень зарплаты в Китае уже выше, чем средний уровень зарплаты по России.

На ценообразование в России для зарубежных товаров скорее влияет иррациональный спрос на статусные вещи (брендовые тряпки\apple\etc), законы, взятки и откаты нежели географическое расположение производителя и цена доставки товара.
Как насчёт всех перечисленных, но до кучи имеющих соответственную часть тела?
К прошлой статье автора с ровно той же тематикой подобных вопросов было меньше habr.com/ru/post/448484
Очень печально, что минусуют не содержание статьи, а надо полагать заголовок статьи за слово «вагина». Поменять заголовок на что то более «научное» (Вагинальные коренные микробы?), и статья вполне возможно заиграет новыми красками, сообщество встретит автора с распростёртыми объятиями и т.д.

Второй триггер за который минусуют, скорей всего эта цитата — «Интересно, что на уровне вида появляется поколение менее здоровое как физически, так и умственно.».

И вот такая ситуация с оценкой материла уже действительно интересна. Людям довольно сложно отключить свои инстинкты и первичную реакцию на «непотребное» слово. А чуть чуть поиграть со словами, и массовое сознание не заметит подвоха.
На хабре более половина статей не по ИТ (космос, химия, паяльники, настольные игры, пасеки и т.д.).
Я более чем уверен, что минусаторы даже не читали статью, а стригерились на слово «вагина».
Производство оружия, сигарет, алкоголя и других наркотиков, веществ, лекарств — регулируется законом. Когда производители начинают сбывать контрафакт или работать в обход правил — к ним предъявляют обоснованные претензии. А клиенты готовы платить много в первую очередь за то, что не всегда законно.
Вы сами пишите, что часто находитесь на грани закона, когда часть информации может быть защищена авторским правом.

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

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

Подглядывать в замочную скважину как минимум не красиво, а если клиент потом ещё и выдаёт спарсеное за своё — то это уже прямое воровство. Конечно понятно, что в сфере бизнеса все так делают. Но в приличном обществе всё же принято об этом молчать.
Любопытно было испытать их в офисе: действительно часть шумов, шарканье ног, падающие со стола бумажки, звук кофемашины — многое, что сливалось в единый гул, снижалось, переставало слышаться вовсе. При этом голоса коллег оставались так или иначе различимы.

Для офисного использования — голоса в первую очередь и надо фильтровать, как наиболее отвлекающий фактор.
Есть похожий лайфхак с базами данных. Вначале создаёшь голые таблички. Потом когда спустя какое то время (в зависимости от нагрузок), всё начинает тормозить — вешаешь индексы, и вот у тебя с лёгкой руки уже ускорение даже не в разы, а на порядок!
Достаточно надуманная критика, которая явно исходит из личных предпочтений и своего взгляда на best practics. И ещё есть постоянные болезненные отсылки к RoR.
Я ни разу не пользователь beego, и на go уже достаточно давно ничего не писал, но могу отметить, что большая часть пунктов притянута за уши.

>Структура папок

Сильная субъективщина на несколько абзацов текста. Либо фрэймворк позволяет создать свою структуру приложения (пусть даже подпакетами внутри controllers\models\view и т.д.), либо нет. Маловероятно, что в beego есть жесткий лок на структуру директорий.

>ORM
>Но основная проблема с Beego ORM даже не в том, что нужно бороться с proprietary языком, а в том, что он использует все худшие практики Go, будь то import sideffect'ов

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

>Bee tool
>Вот только если в мире RoR был rails и был rake, то bee — это такая мусорка для всего

Неправда. Если я правильно помню, в RoR5 команды «rails command» полностью заменяют rake, а в RoR4 почти всё было через rake. Да и в целом разделение не принципиальное. И непонятно, где у автора проблема с filewatcher возникла.

>Automatic routing
>Ну, а как работает весь routing? При запуске пресловутого bee генерируется еще один файл, commentsRouter_controllers.go

Тут можно согласиться, что аннотации в go выглядят несколько странно. Но вот генерация дополнительно файла (от кодогенератора) — так делают все кодогенераторы в go.

>Component testing
>И если тест находящийся в том же package'е может вызвать private method, то тест находящийся в другом package — уже нет.

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

И этого достаточно. Компьютерами в 90е было просто невозможно нормально пользоваться, не зная этих вещей.
Тех, кто копипастит не читая и не думая, уже ничего не спасёт.
Есть мнение, что это антипаттерн и у функции должен быть единственный return. Но это обсуждаемо. Так или иначе, ранний return также ухудшает читаемость кода, заставляя прыгать взглядом по функции вверх — вниз.

Правило одного return пришло из Си подобных языков, где нужно было освобождать память и ресурсы при выходе из функции. Ранний return отсекает граничные случаи (например валидация), и не несёт особой смысловой нагрузки, т.е. не должен заставлять прыгать взглядом.
Послетитровая часть несколько выбилась из общего настроя и вернула в серую реальность. Кажется без неё было бы лучше.
А вы собираетесь как то по разному обрабатывать случай, когда нет файла или когда такой урл не известен? В данном случае, это одно и тоже.
Незначительные неудобства, связанные с необходимостью вставки префикса FATAL перед окончательным сообщением журнала или записи непосредственно в os.Stderr с помощью fmt.Fprintf, не является достаточным основанием для расширения пакета матодом log.Fatal.L


И мы будем вручную формировать шаблон сообщения лога, вместо того, что бы это сделать через логгер? Крайне странная позиция.
Оригинальная статья 2015 года, с тех пор даже авторы go lang успели переобуться и изменить своё отношение под давлением общественности к некоторым аспектам языка.

В длительных операциях, например пакетная обработка N записей, которые ни в коем случае не должны прерываться, логично записать сообщение с error или waring уровнем для записи которую не удалось обработать и перейти к следующей.
Когда вся программа накрылась, код возврата говорит лишь о том, что случилась ошибка, причину ошибки логично поместить в лог с уровнем fatal.
Как правило нужны уровни логирования:


  • info\debug — информационный уровень, который никто не читает, пока не произойдёт ошибка.
  • waring\error — это уже сигнал для системы мониторинга, что в программе что то идёт не так и вероятно нужна реакция от человека. Но в целом программа продолжает работать.
  • fatal — это уже пожарная сигнализация, программа столкнулась с ошибкой, на которую не предусмотрена обработка.
Если правильно помню, более правильным способом анимации являлся программный вывод изображения прямо на canvas формы, потом следовало перезаливка всего canvas или прямоугольника спрайта цветом фона, и смена изображения кадра спрайта и его положения. Правда в таком случае получалось сильное мигание формы, так как canvas — медленный.

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

Information

Rating
4,819-th
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity