Pull to refresh
0
Игорь @ZurgInqread⁠-⁠only

Программист

Send message
Я разрабатываю конкурирующий сервис для поиска новостроек, наболевший пример.
Я хочу, чтобы Яндекс, владеющий более 56% поискового рынка России, конкурировал в результатах поиска на равных со всеми условиях.
В конечном итоге страдают интересы пользователей, которым не дают подлинного выбора услуг.

Доля в 56% — это чуть больше половины. Это крайне шаткое «доминирующее положение». Доля гугла в ЕС примерно 90%. А вы же пытаетесь прикрыться интересами пользователей для своей выгоды. Если пользователей не будут устраивать результаты выдачи яндекса, они спокойно перейдут в поисковик google. Если пользователям понравится ваш сервис, они буду переходить туда напрямую, минуя просмотр конкурентов.

Все претензии были бы ещё обоснованы, если бы яндекс занимал 2/3 рынка поисковиков или по личным причинам фильтровал свою выдачу от конкурентов.
Согласно 12 факторному приложению, писать нужно в stdout, stderr среды выполнения приложения.

Люди бездумно продолжают ссылаться на правила конфигурирования приложений для облачной платформы heroku как на эталон. Если вы разворачиваете приложение не на heroku, то не стоит пытаться следовать всем этим злополучным «12 factor».

Почему heroku говорит, что надо отправлять логи исключительно в stdout? У heroku просто нет другого нормального способа сохранить логи, так как файловая система при любом перезапуске может сбросится в чистое состояние. Если вы разворачиваете приложение на одной единственной машине, то можете писать логи куда вам удобно, не оглядываясь, как это надо делать на heroku.
Несмотря на то, что при работе с PHP всё ещё можно написать очень плохой код, я бы сказал, что это отличный выбор для веб-разработки, если его использовать правильно.

Капитан на палубе.
Всё, что вы написали, с точной технической информацией и без домыслов есть на официальном ресурсе по Go.

Плюс не прикрытая реклама своего ресурса и ужасная реклама курса от mail.ru. Судя по всему, у них отвратительный курс, если вы за неделю вынесли информацию с этого курса, которую можно получить за пару дней самостоятельного изучения.

UPD2: Про качество курса от mail.ru (или того, кто его проходит?) очень хорошо говорит этот кричащий абзац:
Только сейчас понял, что в Go нет НЕЙМСПЕЙСОВ! Вообще! Осознал это, когда после компиляции вылезла ошибка, мол в одной папке у меня два файла с методом main. Оказывается, что на этапе компиляции все из папочки вроде как склеивается в одно полотно! Папка по факту и есть неймспейс. Вот такая магия, товарищи :)

И всё остальное в том же духе.
Зачем вы тратите своё и чужое время на исправление пробелов и отступов? Вы ревьюте сотни тысяч строк кода и распыляете своё внимание на очень важную ерунду. Если с оформлением всё так плохо, то пора настроить линтеры.
Вне контекста разбор одной функции ничего не говорит. Возможно менеджер просит добавить новый регион раз в пятилетку, а вы ускорили в 7 раз функцию, ускорив всё приложение в целом на 0,01%.

UPD1: Ещё я могу предположить, что аллокация слайсов внутри методов сделана специально, что бы эти переменные не торчали в области видимости всего пакета. Возможно вместо переноса переменных достаточно объявить их внутри методов как const, но в целом это проблема скупости языка.

UPD2: зашёл в репу, коду 4 года, описание репы «This is a toy project». Весь проект, в котором «менеджер попросит 15 раз в день добавлять по региону» занимает 138 строк.
Всё таки сильно зависит от области работы. В моём backend за 7 лет ещё ни разу не было необходимости вручную ворочить списками\деревьями. Там где есть хоть какие то объёмы данных, в дело вступают базы данных (тут скорее задачка, правильно выбрать индексы).

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

Цепочка преобразований скорей всего будет записана через таблицу замены. Проверка на исключение циклов — это к алгоритмам, а не к структурам данных.
Графы и деревья в условиях скриптовых языков точно так же будут записаны через структуры Hash\Map. И это точно не является типичной задачей для фронтенда\веба.

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

Воспоминания «как картинки» убирать будет достаточно вредно, необходимо точечное удаление эмоций привязанных к данным воспоминаниям, и при этом такая процедура должна быть произведена как можно быстрее после негативного события, иначе будут происходить другие необратимые изменения психики.
В статье автор запутался и запутал читателей. Во многих местах упоминается 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.
Это может быть персональная презентация-предложение продукта.
А ещё логами с чувствительной инфой можно перекидываться

Information

Rating
Does not participate
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity