• Что делать если команда говнокодит?

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

    Также мы всё собираемся настроить Continuous Integration. Jenkins может прогонять по коду проверку на соблюдение стандартов и покрытие тестами, а затем показывать результаты в красивом виде. Если чей-то коммит показывает более чем N ошибок в расчёте на единицу объёма кода - можно возвращать на исправление.

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

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


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

    Ну и важно, чтобы у самих разработчиков была установка на хороший код, профессиональная гордость. У фрилансеров её, бывает, нет, а есть отношение "тяп-ляп, лишь бы работало и лишь бы часы оплатили, а там хоть потоп". Учитывая, что их заказчики занимаются code review нечасто, развитие такого отношения закономерно. Но всё-таки хочется писать красивые программы. Такое желание обязано быть.

    Я, конечно, сам не волшебник, я только учусь, и работа с командой - такая штука, которой надо постоянно учиться. Видимо, вы тоже учитесь; успехов в этом.
    Ответ написан
    2 комментария
  • Почему Nginx игнорирует правило редиректа в rewrite?

    Inkognitoss
    @Inkognitoss Автор вопроса
    Full-stack разработчик.
    нужно было экранировать. так:
    rewrite '^/catalog/items/Набор\+сковород,\+2\+пр.,\+SD\+SET601i/(.*)' https://$host/catalog/items/nabor_skovorod_2_pr_sd_set601i_6420_i_6426_i/$1 permanent;
    Ответ написан
    Комментировать
  • Почему возвращается undefined при попытке получения значения document.getElementById?

    drugoi
    @drugoi
    Front-end Developer
    У вас HEAD_D0 — это элемент таблицы, а не input, поэтому .value будет undefined, т.к. нет такого свойства у td.
    Ответ написан
    Комментировать
  • Как делать бэкапы Postgresql по-простому?

    @deliro
    pg_dump нормально работает
    Ответ написан
    Комментировать
  • Как написать запрос с условием и GROUP BY?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    На WHERE этот столбец ещё не определён, он появляется только после GROUP BY. Используйте HAVING.
    Ответ написан
    1 комментарий
  • Как лучше создать версии сайта для разных городов в Django?

    Делать app для каждого города и копировать весь код, учитывая, что он одинаковый? нет смысла.

    Лучше рассмотреть проблему иначе. Начнём с зарегистрированных пользователей. Создайте модель City, обозначающую город. Также создайте custom user profile model под названием, скажем, Profile, которая привязана к User отношением one to one. В модели Profile добавьте внешний ключ на City.

    Наконец, реализуйте:
    • Выбор города (можно через AJAX)
    • Вывод на каждой странице сайта только той информации, что соответствует выбранному в request.user.profile.city городу.


    Если же поддержка города нужна и для анонимных пользователей (скорее всего это так), то стоит использовать переменную сессии в качестве дополнительного слоя. В одном из проектов у меня это делается так:

    1. Если есть переменная сессии, то используется она для фильтрации всего и вся
    2. Если её нет, но пользователь зарегистрирован - то берётся значение из БД и сохраняется в сессию, далее как в первом пункте
    3. Если и того нет - у меня запрещён доступ, так надо; ну а у вас пользователю (в вашем случае) надо предложить выбрать значение из списка.


    Таким образом и анонимусы поддерживаются, и при сбросе сессии у зарегистрированного юзера не теряется выбранный вариант.
    Ответ написан
    Комментировать
  • Не читается и не удаляется файл с диска на Debian (вопросы вместо прав и владельца)?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Проверьте файловую систему на ошибки, fsck вам в этом поможет.
    https://www.ibm.com/support/knowledgecenter/ru/ssw...

    Есть вероятность что ваш ЖД помирает.
    Ответ написан
    Комментировать
  • Какой набор инструментов порекомендуете для работы с картами на Python?

    • Для хранения геоданных: PostgreSQL/PostGIS. django.contrib.gis обеспечивает родную поддержку, плюс библиотеки geos, geopy для расчётов расстояний и прочего.
    • Для взаимодействия с front-end - Django REST Framework со сторонними модулями, которые обеспечивают ей понимание gis-полей.
    • Для рисования карт на front end: js-библиотека Leaflet с использованием свободно доступных слоёв (google maps или open street map) и своим кодом, взаимодействующая с back end через вышеупомянутый API.
    Ответ написан
    1 комментарий
  • Хорошая книга по Теории вероятностей?

    sgjurano
    @sgjurano
    Разработчик
    Предлагаю классные курсы от товарища Райгородского:
    https://www.coursera.org/learn/probability-theory-... - тервер
    https://www.coursera.org/learn/kombinatorika-dlya-... - комбинаторика, если с ней у вас тоже не всё в порядке, в тервере она нужна
    Ответ написан
    3 комментария
  • Какое средство резервного копирования для Ubuntu лучше всего?

    fzfx
    @fzfx
    18,5 дм
    я снимаю бэкапы по крону с файлого сервера на сервер бэкапов через rsync, затем на сервере бэкапов создаю снапшот каталога бэкапов (файловая система btrfs).
    Ответ написан
    Комментировать
  • Как OpenVPN завернуть в SSH в Linux?

    > Как OpenVPN завернуть в SSH в линуксе?
    Например, по этому руководству -- https://www.comparitech.com/blog/vpn-privacy/hide-...
    Ответ написан
    Комментировать
  • Каким способом лучше сопоставить таблицы?

    @shushpanio
    shushpanio
    Пользователь одновременно может находиться в нескольких группах?
    Если да - сделайте таблицу типа:
    User_ID||Group_ID
    Если пользователь может принадлежать только к 1-й группе то просто добавьте в таблицу USERS столбец Group_ID и записывайте туда ID группы к которой относится пользователь.
    Ответ написан
    Комментировать
  • Открытие ИП для работы с иностранными заказчиками спустя несколько лет - каковы возможные последствия?

    @andrew8712
    Сам так открывал ИП около 2 лет назад после нескольких лет работы на зарубежных заказчиков. Никакой ответственности за это не понес :) Да и откуда государство узнает о вашей предыдущей деятельности?

    Я бы вам посоветовал не слушать людей, обиженных государством и пугающих неприятностями, которыми "грозит" ИП. С 2016 года во многих регионах можно оформить ПСН, и налог совсем небольшой (если, конечно, вы не живете в Москве, где неадекватные цены на патент на разработку ПО). А еще сейчас много где ввели двухлетние налоговые каникулы для вновь зарегистрированных предпринимателей - налоги вообще не нужно платить.
    По поводу отчетности я бы тоже не переживал. Эльба/Мое дело справляются с этим отлично, вам главное нужно сохранять все контракты для выездной налоговой проверки (если таковая будет). А задержек платежей я ни разу не наблюдал.
    Ответ написан
    3 комментария
  • Открытие ИП для работы с иностранными заказчиками спустя несколько лет - каковы возможные последствия?

    orlov0562
    @orlov0562
    I'm cool!
    Бумажным геморроем и бюрократией грозит - это ДААААА. Ответственностью за то, что ты раньше не платил - возможно, но крайне маловероятно, по одной простой причине - на раскопки нужны ресурсы и заинтересованность конкретно тобой. Если у тебя нет конфликтов с налоговой, то никто ничего не будет копать специально. Ну, а если речь идет о больших деньгах, тогда совет надо просить у профессионального юриста, а не тут. На родственников (кроме жены, да и то под вопросом), не стоит ничего оформлять - сделаешь большой геморрой и себе и им. На мой взгляд никакого catch-22 тут нет, если сильно хочется - оформляешься и начинаешь работать в белую.
    Ответ написан
    1 комментарий
  • Открытие ИП для работы с иностранными заказчиками спустя несколько лет - каковы возможные последствия?

    какова возможная ответственность?

    Штраф за незаконное предпринимательство + налоги уплатите за все, что не заплатили + лишение свободы до 5 лет, если сумма налогов попадает под "особо крупную". В противном случае довольно крупный штраф (100к и больше, если память не изменяет).

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

    Другое дело, что, не открыв ИП и продолжая работать, вы усугубляете возможные последствия, т.к. раз в год и палка стреляет. Вон, собираются ввести глобальную базу данных по счетам физлиц, например. Тот же пионер или счета за рубежом будет вычисляться по простому запросу на раз-два... посему наилучшим решением будет пойти к юристу и, минимизировав возможные риски, открыть-таки ИП.
    Ответ написан
  • Можно ли открыть ИП и работать на иностранных заказчиков находясь не в России?

    maxaus
    @maxaus
    Вошёл вайти и пока не вышел
    откуда же вы столько бюрократических страшилок берёте про ИП (вы - имеется в виду те, кто на тостере с завидной регулярностью задаёт вопросы аля "мам, если я ИП зарегистрирую, то у меня получится выжить?") :))) В вашем случе, скорее всего, просто выбираете для открытия счетов ИП какой-нибудь банк, у которого нет отделений - Точка, Модуль, Тинькофф и т.п. , для подачи отчётности и подсчётов всяких взносов и самих налогий - самый дешёвенький тариф где-нибудь в Эльба.Контур или МоёДело (будет стоить 3-4 т.р. в год) и делаете электронную подпись для сдачи отчётности в налоговую. И спокойно колесите по Чили, удовлетворяя налоговую электронно :)
    Ответ написан
    4 комментария
  • Софт для перерывов в работе за компьютером

    @habrauser
    Ответ написан
    Комментировать
  • Выбор СУБД для проекта?

    DevMan
    @DevMan
    Берите PostgreSQL — не ошибётесь.
    Ответ написан
    3 комментария
  • А что вы делаете после установки ubuntu?

    @second_pilot
    закуриваю
    Ответ написан
    Комментировать
  • А что вы делаете после установки ubuntu?

    seriyPS
    @seriyPS
    При установке с нуля ставлю кодеки, архиваторы, Chrome, флеш, скайп.

    Но стараюсь по-возможности сохранить список софта с уже настроенного компа dpkg --get-selections > software_list и применить его к новой установке dpkg --set-selections < software_list ; apt-get dselect-upgrade.
    Ответ написан
    Комментировать