• Что такое культура программирования?

    xez
    @xez
    TL Junior Roo
    Почти то же самое, что культура коммуникации.
    - Следование код-стайлу. Адекватный нейминг.
    - Умение писать выразительный, понятный код. Без лапши, без убер-методов на миллион строк, без олимпиадных трюков (если нет такой необходимости); код, в котором можно будет легко разобраться.
    - Любовь к тестам. Понимание почему и зачем тесты писать и почему и зачем не писать.
    - Следование общепринятым инженерным практикам. В Гите не пушить без реквеста в мастер, не ребейсить без необходимости, подписывать комиты, описывать реквесты. В бд предпочитать миграции и не лазить в прод трясущимися, грязными ручонками. Релизы согласовывать, к стейджам относится уважительно. В очереди не срать. Рута избегать.
    - Скилл в декомпозиции и оценке. Умение прогнозировать разработку, умение давать обещания и умение их выполнять.
    - Отсутствие магического мышления. Понимание причино-следственных связей. Знание что такое логи и что такое метрики.
    - и т.д..
    Ответ написан
    Комментировать
  • Как преодолевают порог новичка в разработке и как не остаться "вечным новичком"?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Отработайте хотя бы год. Потом разговаривайте о своих переживаниях с непосредственным руководителем. Если он вас не услышит, можно искать другую работу.
    Ответ написан
    2 комментария
  • Как разобраться в ASP.NET MVC относительно быстро?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Может какие-то конкретные книги можете посоветовать?

    Советую вот эту https://www.ozon.ru/product/asp-net-core-3-s-prime...
    или более раннюю версию от этого автора.

    Сам начинал учиться по такой книжке, только тогда еще был asp.net mvc4

    Также рекомендую официальную доку https://docs.microsoft.com/ru-ru/aspnet/core/?view...
    Она сделана достаточно хорошо, а в некоторых местах очень хорошо.

    И если не хватает, то https://metanit.com/sharp/aspnet5/
    Ответ написан
    Комментировать
  • Тестовые задания по C#?

    Xapu3ma-NN
    @Xapu3ma-NN
    Я делал так. Сказал себе "Хочу написать клиент-сервер, который передает изображение рабочего стола одного компьютера на другой" и побежал в гугл, а оттуда на киберфорум, стэковерфлоу и.т.п. И написал, попутно разбираюсь как реализовать ту функцию или ту. А что будет если я сделаю не как в примере, а вот так ну и тому подобное. Потом сказал "Хочу написать автоапдейтер резюме на hh.ru" ну и алгоритм описан выше :)

    Мне просто было это интересно, и это мотивировало разбираться с языком для решения моей задачи. Тестовые задания я не осилил делать в силу лени и не интересности. Хотя подход в целом можно назвать корявым.)
    Ответ написан
    1 комментарий
  • Как программисты следят здоровьем глаз, зрения или позвоночника?

    @asd111
    Поставь яркость на мониторе 0 и увеличь размер шрифта до 150%(в windows) и используй темные темы в IDE и браузере(dark reader).
    У меня тоже была сухость глаз и капли + снижение яркости и увеличение шрифтов полностью решили проблему с сухостью.
    Ответ написан
    Комментировать
  • Как усвоить большой массив информации за короткое время?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Основное:
    1. Полное понимание и осознание того, что читаете (и желание познавать!).
    2. Структурирование и выделение контрольных "точек входа" в процесс обработки информации с расписыванием по-шагам.
    3. Периодическое использование полученных знаний (практика).

    Важно:
    1. Не нужно учить всё подряд и недопонимая полностью материал.
    2. Не нужно учить то, чем не будете пользоваться в ближайшее время.
    3. Не нужно пытаться понять материал, когда отсутствует концентрация внимания.
    4. Не нужно пренебрегать использованием гугла и созданием коротких заметок в сложных для понимания местах.

    PS: это никому не интересно, но напишу про свою реализацию заметок: я создаю HTML-ки, "сшиваю" своей js-либой и запускаю с рабочего стола index.html локально в стиле своей локальной note/вики по нужной мне теме, правлю контент - в обычном notepad++.
    Ответ написан
    Комментировать
  • Как сконвертировать datetime в прошлое?

    @mletov
    А как вы собираетесь отличать 20 век от 21 при таком формате?
    И откуда знаете, что именно 1929, а не, к примеру, 1029?
    Если, конечно, все даты в рамках 20 века, то можно принудительно сплитом бить и дописывать 19 перед годом.
    Но вообще это вопрос к тому, кто в таком виде данные отдает.
    Ответ написан
    4 комментария
  • Очень хорошо знаю PHP - куда двигаться дальше?

    Во-первых, мир PHP сильно шире, чем то, что вы описали.
    Например, умеете вы из PHP работать с
    - RabbitMQ
    - Redis
    -MongoDB
    - ElasticSearch
    Умеете писать автотесты?
    Умеете деплоить через Docker? Хоть один CI/CD?
    Если все ответы "нет", то могу вас обрадовать - вы знаете PHP не "очень хорошо", а средненько, и ответ на ваш вопрос очевиден.

    Во-вторых, Если это всё умеете, и развиваться хотите именно как бэкенд, лично мои предпочтения - Go и/или Node..JS.
    Аргументировать не стану, вам же готовый ответ нужен.
    Ответ написан
    Комментировать
  • Очень хорошо знаю PHP - куда двигаться дальше?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Хайлоад

    Сразу поймёшь, что ничего не знаешь вообще
    Ответ написан
    2 комментария
  • Как вы справляетесь на удаленной работе?

    @uroot
    Лично я делаю так:

    1) Слушаю непринуждённую музыку в процессе работы (SYML, например) если это мне не мешает. Отлично помогает проснуться.
    2) Работая, переодически делаю зарядку (фитнес трекер оповещяет о том, что я засиделся)
    3) Сплю на обеде
    4) Проветривание - это самое важное. Затхлый воздух убивает мозг.
    5) Прогуливаюсь после работы

    UPD: не так давно начал бегать 2-3 раза в неделю после работы или на выходных. Из музыки отлично стали заходить прямые трансляции на канале ChilledCow (просто мелодии без слов). Слушаю весь день на небольшой громкости, а то со словами музыка отвлекает.
    Ответ написан
    Комментировать
  • Возможно ли совмещать очную форму обучения в ВУЗе и фриланс?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Да, сам так делал, начиная со второго курса работал.
    Ответ написан
    Комментировать
  • Как оптимально питаться при работе головой?

    @tomatopotato
    неспешно попивать коку-колу, к примеру делая один глоток в 10 минут, то можно быть более продуктивным

    Таким нехитрым способом вы сделаете более продуктивными и богатыми:
    1) диетологов
    2) стоматологов
    3) Производителей инсулина (да, да диабет где-то рядом)
    4) Производителей Кока Колы (ну это и так понятно).

    Что едите и пьете для более эффективной интеллектуальной работы?

    Лично я питаюсь так и отлично себя чувствую :
    Завтрак французский без мучной выпечки (типа круасанов и прочего) это жаренные гренки, молодой сыр или плавленный качественный, иногда яйца вареные в смятку или омлет (но не часто) + черный кофе без сахара натуральный естественно, а не растворимый.
    Обед русский - это обычно суп + салат или каша из традиционных для России круп + чай. Из мяса ем рыбу (нужен фосфор и жиры омега3), печень говяжью (витамин B12 в качестве профилактики анемии) куриную грудку (чистый белок для мышц). Мясо ем три дня в неделю, четыре дня мясо не ем вообще. Дело в том что мясо пусть и диетическое это тяжелая пища сильно нагружающая печень.
    Ужин вегатарианский. Салат из свежих овощей + фрукты и чай из трав, чтобы спокойно заснуть.
    И физическая активность обязательно. Это само собой. Я занимаюсь каждый день по фитнес программе из гуглплея.
    Насчет алкоголя : я пью качественное красное сухое вино с защищенным наименованием примерно раз в месяц, не столовое. От пива жиреешь + почки страдают, а от крепких алкогольных напитков натуральным образом тупеешь и у меня есть личный пример когда человек умеренно употребляющий крепкий алкоголь стал шизофреником и теперь сидит на инвалидности.
    Такой образ жизни позволяет мне нормально высыпаться и держать ИМТ (индекс массы тела) в норме.
    Ответ написан
    9 комментариев
  • Уехал в Москву, но не тяну по сложности, стоит ли возвращаться домой?

    qlkvg
    @qlkvg
    python backend developer
    Был в похожей ситуации года 3 назад, только без обрубания концов и релокации. Совсем не тянул, спрашивал мелочи у коллег и стыдился, ничего не понимал. Хотелось все бросить и вернуться на прошлое место работы, где можно было спать до обеда. В итоге через 3 месяца ада, ощущения собственной ничтожности и штудирования книг в любой удобный момент, что-то начало получаться. В итоге дорос до человека, у которого джуны спрашивают мелочи.
    Сейчас понимаю, что первые несколько месяцев нужно было просто пережить. Это нормально для зеленого новичка в индустрии. Если вы не устроились на позицию сеньер фул-стека, адекватный работодатель не будет от вас требовать мгновенного результата. Если переживаете, честно поговорите с непосредственным начальником, что не вывозите, нужно время на раскрутиться
    Ответ написан
    4 комментария
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

    * Тестируемость (в смысле простота тестирования) кода должна быть высокая.
    - Покрытие кода обязательно для всех возможных кейсов использования каждого публичного метода с моками зависимостей.

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

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

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

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

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Из Москвы в провинцию на удалёнку?

    newross
    @newross
    Product owner
    Вполне реально. В 2014 году вернулся из Москвы в Новороссийск. Но есть ряд проблем:
    - удаленная работа подходит далеко не всем;
    - в глубинке и на периферии нет ИТ тусовок. Либо ездить в Москву\Питер, либо участвовать онлайн;
    - периодически будут поступать предложения опять работать в столицах, от которых будет сложно отказаться.
    Ответ написан
    6 комментариев
  • На сколько сильно программирование .ASP NET MVC зависит от C#?

    ApeCoder
    @ApeCoder
    Можно, если знать какой-то ещё .Net язык на котором работает asp.net mvc. Например, vb.net. Правда c# самый полярный язык так что придется все равно в каком-то объеме его знать для практической работы - примеров, описаний компонентов и прочего будет на нем больше
    https://www.mikesdotnetting.com/article/230/gettin...
    Ответ написан
    Комментировать
  • Что думаете о перспективах .NET и С#?

    Morpheus_God
    @Morpheus_God
    А чего тут думать.
    Веб платформа есть, геймдев ветка есть, десктоп тоже есть, Xamarin под мобильные платформы есть. Кроссплатформенный фреймворк (Net.Core) пилят. Чего еще надо для счастья то.
    Ответ написан
    Комментировать
  • Как изучить язык баз данных SQL?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    Книги это, конечно, здорово, но как показывает практика, большинство книги либо забрасывает, либо просто читает и не особо новые знания впитывает. (если речь о начинающих разработчиках, которые прям с нуля начинают книгу читать)

    А самый логичный способ что-то изучить - это практика, практика и еще раз практика. Если нет реального проекта с реальными проблемами - рекомендовал бы пару ресурсов: sql-ex и pgexercises, там можно поработать как с совсем простыми и примитивными запросами, так и с гораздо более сложными.

    Ну а овладев азами можно уже и книгу брать, чтобы закрыть пробелы, либо документацию по конкретной СУБД
    Ответ написан
    3 комментария
  • Задание переменной, которая будет объектом?

    @justslipknot
    Имхо, правильнее будет интерфейсы юзать

    IDriver driver;
    if (true or false)
    {
        driver = new FirefoxDriver();
    }
    else
    {
        driver = new ChromeDriver();
    }


    ChromeDriver и FirefoxDriver в свою очередь наследуете от интерфейса IDriver и реализуете его методы/свойства
    Ответ написан
    Комментировать