• Споры с менеджером?

    DrunkMaster
    @DrunkMaster
    У нас так же было. Сколько тебе надо на эту задачу? 4 часа. Чё так долго, я это делаю за час.
    Я говорю: ну считай что я медленнее тебя ))
    В итоге он поставил 3 часа, я делаю за 2 и у меня есть время на обязательные вещи на которые вообще время никто не выделяет, типа поправить старый код и т.п.
    На время остальных вообще внимание не обращаю, свои если задачи по объективным причинам просрочены - тоже. В целом тоже часто не успеваем что-то.
    Ответ написан
    7 комментариев
  • Споры с менеджером?

    @kstyle
    Соберите статистику по таким оценкам и в удобный момент покажите график на сколько процентов ошибались.

    А вообще есть книги по таким оценкам. Цитаты по теме

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


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

    @raspier
    Java Developer
    Когда у меня возникает такое, я иду на Reverso Context
    Пишешь что хочешь сказать на русском, он ищет совпадения (я так понял, что в субтитрах и книгах). Я так формирую предложения для переписки.
    Ответ написан
    6 комментариев
  • Что должен знать, помимо ЯПа крестовый джун?

    TrueBers
    @TrueBers
    Гуглю за еду
    Нет в C++ никаких трендов. Здесь как писали 20 лет назад, так и пишут.

    STL, Boost, Qt, WinAPI, MFC, POSIX, BSD, OpenCV популярен очень. Отладчики WinDBG, Visual Studio, gdb, lldb. Компиляторы clang, gcc, MSVC++. Системы сборки make, Cmake, MSBuild. Среды разработки Visual Studio, Clion, QtCreator. Ассемблер ещё знать желательно, основы работы кеша и памяти, как процессор попадает в кеш, как промахивается, почему один способ обхода памяти тормозит, а другой работает быстрее.
    Есть, конечно, и хипсторы местные со всякими Rx'ами, интеграциями Node.js'а и прочими биткоинами. Но таких мало и они быстро сливаются в другие языки, остаётся классика.
    Системы контроля версий к C++ никак не относятся. Хоть на дискетке почтой посылайте, никто вас не заставит. Везде гит, преобладает, как и в остальном мире.
    Из относительно нового только, что GSL из Core Guidelines да folly от фейсбука.

    Проблема вакансий в другом: чистый плюсовик почти никому не нужен. Обычно плюсовиков ищут совмещающих с джавой, шарпом, даже питоном и джаваскриптом.
    Ответ написан
    1 комментарий
  • Кликабельный after или before?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Прекратите пихать туда ссылки и прочую хрень.
    Псевдоэлементы предназначены для совершенно других целей.
    Сделать можно, но я лучше отвечу "Никак", чтобы не плодить говнокода.
    Ответ написан
    2 комментария
  • Почему перенос строки после return игнорирует следующую строку?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Как уже написал Алексей Тен - это стандарт
    Для гарантированного разделения выражения на несколько строк можно брать его в скобки
    var f = function(){
         return (
                 123
         );
    };
    Ответ написан
    Комментировать
  • Как вы изучаете новый язык программирования: книги, видеокурсы что-то еще?

    GavriKos
    @GavriKos
    Всегда во все времена - только ПРАКТИКА. Вы можете перечитать десятки книг, просмотреть сотни видеоуроков - но пока вы не сядете и не начнете кодить на этом языке - толку от этого НОЛЬ. Особенно с учетом того, что синтаксис учится очень быстро и не является определяющим в изучении нового ЯП.
    Ответ написан
    3 комментария
  • Как вы "привыкли" к Bootstrap?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Так же, как и с любым другим фреймворком/плагином/ит.п. - открытая страница с официальной документацией.
    До сих пор копи-пастю оттуда код модалок =)
    Ответ написан
    Комментировать
  • Как изменить некоторые маркеры в списке (UL/LI)?

    aliencash
    @aliencash
    Партизан
    Можно отменить нештатный маркер для всех элементов кроме первых трех. codepen.io/aliencash/pen/jyjYdO
    Ответ написан
    3 комментария
  • Принцип взаимоотношений front & backend?

    sim3x
    @sim3x
    Чаще всего так
    5 тел пилят бек, 5 фронт
    Просирают сроки напроч

    Приходит один синьйор и за два дня переписывает все с 0

    Для поисковиков нужна статичная хтмлка - ее кто-то должен рендерить
    Реакт и ко такое умеют, ангуляр также.
    Тк все там нода, то таким занимаются фронтендщики.
    Бекенду остается делать апи для всего етого хозяйства

    Если изначально рулили бекендеры, то реакты и ангуляры будут занимать нишу jQ

    В каждом (длинном) проекте все происходит по-своему

    каждая несчастливая семья несчастлива по-своему
    Ответ написан
    5 комментариев
  • Почему сейчас открывается так много школ по программированию?

    delphinpro
    @delphinpro
    frontend developer
    Тут все просто - это относительно простой способ срубить бабла с населения.
    Люди начитаются историй успеха в интернетах про всяких там цукербергов и дуровых и толпами валят в эти школы.
    Ответ написан
    Комментировать
  • Чему научиться за год до эмиграции?

    BBmike
    @BBmike
    Язык, язык, язык и еще раз язык.
    Всё. Больше ни на что не заморачивайся.
    Считай это универсальной аксиомой отбывающего.
    Ответ написан
    10 комментариев
  • Что спрашивают у дизайнеров на техническом собеседовании?

    werty1001
    @werty1001
    undefined
    Точно спросят: Кем вы себя видите через пять лет?
    Ответ написан
    1 комментарий
  • Как писать много кода, оставляя его простым, как в начале?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ну в общем-то ответов много. Могу кое-что добавить от себя.

    Во-первых, голова не бесконечна во всех смыслах. Запихнуть в неё больше чем 10 объектов одновременно вряд ли получится, у многих начинаются огромные проблемы уже с 5. Лично я испытываю ДИКУЮ больше если собственный код становится больше чем большой. Для меня это где-то 15~20 сущностей, причём чем сильнее они связаны, тем сложнее они даются, так как становится сложно абстрагироваться. Что примечательно, при работе с чужим кодом таких проблем практически нет, ну у меня по крайне менее. Всё дело в том, что чужой код изначально воспринимается чёрным ящиком, поэтому если он не представляет из себя дикую лапшу, аккуратная работа с ним с минимальным вмешательством в проект получается легко.

    Во-вторых, не стоит делать код пушистым. Однообразность воспринимается лучше. Массивы некоторых объектов надо называть $названием_объекта + 's'. Классы с большой буквы, любой объект стоит называть так же, как класс, но с маленькой буквы. Конечно, если семантически прям просится по другому, то стоит правило нарушить, но в общем случае никаких выдумок не надо. Временная строка - str, временное число - tmp, временный объект - obj. И пробелов не жалей, внутри файла разделяй разные структуры двумя-тремя пробелами, стоит обособлять регионы, например, "глобальные" функции наверху, по середине структуры, потом классы. В C# есть #region.

    В-третьих, объём тоже воспринимать сложнее. Делай плоско. В том смысле, что меньше наследований, больше включений. Очень тяжело воспринимать архитектурную лапшу. Суть микросервисов - единственная, максимум две точки связи. То есть контроллер де должен склеивать всё и вся, это задача "простейшего" диспетчера событий, который крутится в своём цикле и распихивает поступившие сообщения. Микросервису надо думать чем меньше, тем лучше. Вообще, микросервисы не всегда хорошо подходят, они очень удобны в сверхраспределённых командах с высокой степенью самодисциплины, когда привычка смотреть в доки сильнее привычки звонить тимлидеру на каждый чих. В случае с самостоятельной разработкой они скорее зло, хотя в web поначалу довольно приятно, заливать чрезвычайно низкую производительность ресурсами, забивая каналы связи под завязку, не лучшая идея. Порой намного лучше сделать монолитно, но аккуратно, особенно когда вся жизнь продукта под ответственностью одного человека.

    В-четвёртых, внутри монолита также надо делать максимально растянуто, никаких супер-синглетонов бдящие за всем и вся. Равно как и с микросервисами, внутренние объекты должны иметь минимум точек входа. Они должны быть просты и понятны. Если какой-то класс выполняет слишком много задач, часть из них надо делегировать другим классам, возможно новым. Это по сути цикломатическая сложность, о которой упомянул Ivan Sokolov, но мне не нравится эта формальность. Да и некоторые вещи сложно формализовать ребром на графе.

    В-пятых, иерархия должна быть логически правильной, наивной, без выпендрёжа. Тоже самое, что и в третьем, плоское лучше объёмного.
    Плохо:
    3dbadffb7d954b2d93a5dfec863289be.png
    Лучше:
    1238e5c4d83340239a250116d4d2fa3a.png
    Пример немного утрирован, но суть, навроде, ясна. Не надо наследовать всё и вся от чего угодно, если есть возможность включить внутрь - включай. Всё остальное от лукавого и только в крайних случаях.

    В-шестых, используй UML, mind maps, блокнот и таск менеджеры. Эти инструменты словно манна небесная спасают дедлайны от полного уничтожения. Хотя UML спорен, им очень удобно следить за структурой проекта, представлять картину с высока, рисовать его стоит самому, учитывая неявные связи и убирая рудиментарные. Mind maps помогут собрать мысли в кучу. Блокнот банально запишит то, что постоянно забывается. Таск менеджеры сформируют привычный график, отобразят прогресс, помогут фокусироваться на текущих задачах, не растекаясь по проекту.

    В-седьмых, изучи декларативное программирование. Шикарная вещь, которая позволяет сконцентрироваться на задаче, а не на решении. Из коробки в функциональных (erlang) и логических (prolog) языках, однако многие элементы существуют и в монстрах вроде C#/Java, Python, особенно JavaScript. Насчёт Go не знаю, но на первый взгляд весьма декларативный.

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

    Ещё пара абзацев. Ну про вредные советы: методы надо делать ровно такими, какие они должны быть. 20 строк - это что-то вроде лакмусовой бумажки, однако это лишь один из параметров. Очень часто требуется сделать громадную функцию для работы со сложным API или подробить много разных чисел в циклах. Поэтому ориентироваться на это плохая идея. Равно как и папки-подпапки-подпапками погоняемы, максимум - два уровня в чрезвычайно сложных проектах. Иначе будет очень сложно ориентироваться. Ещё происходит странный возврат к комментариям. На мой взгляд, если это не продаваемая за большие деньги библиотека - нах*й надо. Документация в комментариях - рудимент кода, он нигде не используется, зато требует поддержки, на что приходится распылять внимание. Если нет условного рефлекса править комментарий после кода - выбрасывайте и не жалейте. Везде! Без исключений. Ещё есть много "архитектурных" паттернов. Снова вред, если вы не работаете в Google, где вашу зарплату надо оправдать умными словами. Самый эффективный способ - программировать наивно. Чем проще для вас сейчас, тем лучше для вас потом. Если думаете больше десяти минут - плохо думаете... Но об этом позже. Паттерны это некая систематизация неких знаний, причём совершенно не понимаю, зачем её вообще сделали. Да, архитектура в некотором роде нужна, но постоянно искать какой паттерн здесь надо использовать, если это не проект на 100500 лет вперёд - нельзя. Почти всегда будет дешевле в случае неуспеха отрефакторить всё и вся, чем переписывать с нуля или тратить месяцы на продумывание архитектуры... В которой также могут быть ошибки.

    И последнее. Отдыхайте. Если чувствуете, что задыхайтесь - пройдитесь, подышите. Если чувствуете, что мозги плывут - отвлекитесь, подумайте о другом. 8 часов в день для программиста - это дикость, но это реальность. Для разных людей наибольшая эффективность поддерживается где-то 3~6 часов, причём некоторым требуются перерывы каждые пол часа, другому хватит обеденного перерыва, а третьему вообще нельзя сегодня никаких отвлекающих факторов, ибо "волна". На самом деле, человек существо динамичное, так что будут разные дни. Но если не получается сейчас - не бесите самого себя. Отдохните, перекусите, пробежитесь, покурите, проверьте почту, послушайте музыку, почитайте статью. Не тратьте время бездарно и, что интересно, проблемы будут решаться, усилия будут прикладываться аналогичные, но вот ощущения от работы станут совершенно другими.
    Ответ написан
    7 комментариев
  • Preloader для сайта с прогрессом?

    freislot
    @freislot Автор вопроса
    Frontend-разработчик
    Разобрался с PACE, вопрос снят, извините
    Ответ написан
    1 комментарий
  • Отладка кода, PhpStorm 10?

    Decadal
    @Decadal
    Прикручивайте. Для отладки нужно лезть в настройки вашего php-интерпретатора, чего PhpStorm, разумеется, не сделает сам по себе.
    Ответ написан
    Комментировать
  • Как вернуть "любовь" к программированию?

    DevMan
    @DevMan
    это называется рутина.
    помогает смена деятельности. не в смысле уйти на флот, а заняться изучением и практикой в смежных областях.
    Ответ написан
    7 комментариев