• Как правильно написать простенький тест на 3 варианта ответа?

    VoidVolker
    @VoidVolker
    Правильно организовать на самом деле очень просто и достаточно использовать стандартные организационные методы:
    1. Подготовить ТЗ
    2. Собрать требования, ограничения
    3. Подготовить ЧТЗ
    4. Сделать декомпозицию задачи на подзадачи/подсистемы/подмодули
    5. Разработать архитектуру
    6. Проработать подзадачи/подсистемы/подмодули
    7. Разработать тесты, при необходимости
    8. Поэтапно произвести процесс разработки
    Ответ написан
    Комментировать
  • Как вычислить значение функций в С#?

    longclaps
    @longclaps
    К сожалению, на графике не указана точка С#, и значение функции в ней вычислить пока не получается.
    Ответ написан
    1 комментарий
  • Как правильно передавать параметры?

    DmitryVoronkov
    @DmitryVoronkov
    Python Developer
    Да пусть свои удаляет, главное чтоб чужие не мог, проверяй, принадлежит ли id к user_id
    Ответ написан
    Комментировать
  • Что делать, если в проекте много плохого кода?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как справиться с легаси-депрессией?


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

    У вас же есть возможность получить более интересный опыт - ежедненное улучшение, каждый новый день - чуть меньше говнокода, анализ и исправление чужих ошибок (это очень полезный опыт в плане развития самого себя, ибо в чужом коде проще искать недостатки а зная их мы не будем так делать у себя в коде).

    Контроллеры на 2к строк


    Так это же замечательно! Это значит что вам попалась категория говнокода из разряда "просто тупое дублирование". Такой код весьма легко рефакторить, а значит уже не нужно плакать. В идеале перед рефакторингом было бы неплохо покрыть изменяемый код тестами уровня приложения, просто e2e тест который будет за вас автоматически проверять не сломали ли вы чего-нибудь.

    А далее, начинаем со структурных изменений (выносим дублирование в приватные методы, потом в сервисы), не меняя код, потом начинаем аккуратненько добавлять тестов и делать код чище. Причем все это можно разнести по времени, закладывая 30% времени разработки на устранение технического долга. типа по 2 часа в день на то что бы сделать код лучше. Конечно же вы должны еще владельцам проекта эту мысль донести, что мол инвестировав сейчас n% времени мы получим в долгосрочной перспективе профит в виде сокращения количества багов и как следствие улучшении процессов, предсказуемости и т.д.

    написанный школьником js


    А вот это уже не конструктивно. Если там просто куча jquery-лапши, то это тоже рефакторится. Опять же начинаем со структурных изменений а там уже не так больно.

    хранимки с селектом и адские джойны

    А вот базу рефакторить будет чуть сложнее. Я бы для начала избавился бы от прямой работы с базой и спрятал бы весь sql и вызовы всех хранимок в коде нашего приложения (table gateway, row gateway или даже лучше data mapper, зависит от текущей ситуации). А затем уже можно опять же постепенно улучшать структуру базы данных, избавляться от хранимок и т.д.
    Ответ написан
    6 комментариев
  • Что делать, если в проекте много плохого кода?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Если возможно, просто возьми проект домой и пили его там, чтобы он в итоге оставался в рабочем виде, то есть ты мог показав изменения доказать, что оно по прежнему работает. Ну и напиши покрытие тестами. Скажи, что делал в свободное время. Можно даже привести очень много конкретных кусков кода с объяснением их минусов. Объясни, что со временем поддерживать проект станет ещё сложнее. Расскажи о демотивации, скажи, что это реальность и ты не один такой, что в скором им сложнее будет найти человека, у которого будет желанием этим адом заниматься и разбираться в нём. Проработай посыл. Распиши всё, что хочешь сказать. Да можешь в итоге эту писанину и отправить, так как написать всегда можно лучше, чем сказать.
    Ответ написан
    1 комментарий
  • Что делать, если в проекте много плохого кода?

    petermzg
    @petermzg
    Самый лучший программист
    Диверсия в виде тайных правок старого кода.
    А иногда можно и в открытую. "Чтобы вот это новое заработало, надо этот старый блок кода переписать" ))
    Ответ написан
    4 комментария
  • Изучение c# путем создания игр, стоит ли идти по такому пути и какие есть варианты?

    AlexZaharow
    @AlexZaharow
    O Keep Clear O
    Программирование происходит в голове. Компьютер всего лишь средство выражения, так же как и windows forms. Приучите себя писать не только код, но и документацию. В общем программирование игр на игру совсем не похоже и обрастает кучей допработ, которые делать не всегда хочется, потому что а) я это миллион раз видел у других и б) я думал это должно работать само, а оно во как вышло, что мне нужно сделать то, что пользователи будут стремиться "пропустить" как назойливое препятствие на пути к экшену.
    Из маленьких наблюдений за профессией - просто делайте по одному два открытия/инсайта для себя, но каждый день. Сохраняйте темп, продолжайте бежать. :)
    Ответ написан
    Комментировать
  • Как обработать все случаи при решении системы линейных уравнений с двумя неизвестными?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Для решения систем удобнее пользоваться матрицами, и методом Крамера в частности. Это не так страшно, как выглядит. И код получится намного проще и логичней.
    Ответ написан
    2 комментария
  • Как у DIV'a сделать косую линию внизу?

    Сделайте треугольники через before и after для серого и желтого блока + поставьте им
    position: relative; 
    z-index: 1;

    Как делать треугольники
    Про before и after знаете?
    Ответ написан
    6 комментариев
  • Что почитать для прохождения вводного курсa C#?

    @smozhaykin
    Jeffrey Richter - CLR via C#
    Adam Nathan - WPF 4.5 Unleashed
    Ответ написан
    Комментировать
  • Как получить объект, по которому был сделан click?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    codepen.io/iiil/pen/gCwjy

    window.onload = function() {
      var steps = document.getElementsByClassName('wp__step');
      for (i = 0; i < steps.length; i++) {
        steps[i].onclick = function() {
          alert(this.getAttribute('id'));
        };
      }
    };

    В каком смысле this не помог? По ссылке все ок.
    Ответ написан
    1 комментарий
  • Как написать операционную систему с нуля?

    alexraven
    @alexraven
    веб-разработчик, специализация - wordpress
    Я очень давно, лет 17 назад, тоже загорелся идеей написать собственную операционную систему. К тому моменту я довольно хорошо изучил систему MS-DOS изнутри - писал резидентные файловые вирусы, но так сказать, с конструктивной целью - изучения "внутренностей" MS-DOS (ни один из моих вирусов не содержал деструктивных функций). К сожалению, разработка моей ОС дальше загрузчика и драйвера файловой системы не продвинулась, хотя планы были грандиозные - многозадачность и поддержка "громадных" объемов оперативной памяти - на тот момент у меня была 386SX с двумя мегабайтами оперативки :) Писал на Ассемблере. А потом познакомился с Watcom C (который и ныне здравствует, под названием Open Watcom), и интерес к написанию собственной ОС окончательно остыл.

    Можно взять исходники любой операционки и "расковырять" их. По поводу "тебе заняться нечем, это нереально" и т.д - реально, даст уникальный опыт и +100500 к респекту в кругах коллег-программистов :) Насчет ЯП - однозначно С/С++. Зная С/С++, изучаешь новый язык, на нём основанный, примерно за неделю.
    Ответ написан
    Комментировать
  • В чем разница в названии переменных со знаком $ и без него? И что где лучше использовать?

    @Snewer
    Это просто название переменной. Никакого функционала они не несут. Таким образом удобно называть переменные для jquery объектов, например.

    $ такой же символ как и ABC, т. е.:
    var $test,
    $$test,
    te$$$$$st,
    test$$$;

    все переменные указаны верно
    Ответ написан
    Комментировать
  • Действительно ли back-end разработка более консервативна, чем front-end?

    hrls
    @hrls
    Половина ответа в вопросе, но дьявол в мелочах.
    Действительно, для относительно продуктивной backend-разработки практически на любом языке программирования необходимо знать несколько базовых фреймворков и тулов, которые решают большинство задач. Это скелет ~90% приложений сложнее hello world. Хотя и этот скелет меняется и развивается, пусть и не так быстро как хотелось бы, как разнообразные отростки (не консервативность, но более долгий жизненный цикл). Суммарный вес технологий и инструментов не меньше, и уж точно не менее динамично изменяющийся, чем у frontend-разработчиков.
    Далее личный опыт на примере Java.
    Лет 7-8 тому достаточно было знать Spring, Struts, Hibernate да Apache Commons в довесок для разработки большинства решений. Ну и J2EE-стек для задач Enterprise-уровня.
    В году 2014 Spring, Hibernate все также в арсенале программиста, но появилась куча абсолютно новых вещей вроде AMPQ, Hadoop, Netty, Scala с функциональной парадигмой, мультиязычные окружения с Clojure/Groovy/JRuby; стали чаще встречаться альтернативные реализации популярных библиотек (например Guice / Guava); старые технологии вроде J2EE стали использоваться несколько реже. А одних только Key-Value хранилищ, кэшей и прочих NoSQL как грязи. Изменился даже сам подход к построению приложений – мало кто в 2005 слышал про asynchronous event-driven модели и отталкивался при проектировании от REST-стиля (собственно, там и корни frontend-девелопера как отдельной специализации). Про эволюцию систем сборок, VCS, бенчмарков и прочих "микро"-элементов можно расписывать не одну простыню.
    И да простят меня frontend-товарищи за, возможно, чванливый тон, но раскурить тонкости работы async IO в зависимости от ОС-специфики вроде epoll/kqueue или учитывать CAP-теорему при построении middleware-кэша это уровнем сложности повыше, чем новый CSS-препроцессор и CoffeeScript c очередным MVC / MVVM-фреймворком. Некоторые задачи, вроде синхронизации потоков, так и вообще лежат большей частью в области математики.
    Уверен, что и в frontend-разработке существуют задачи сложнее и интереснее поехавшей на пиксель верстки и обновления полей после парсинга JSON, но ИМХО backend-разработка ближе к системному программированию старой школы, в то время как frontend суть прикладное программирование с примесями дизайна.
    Frontend-инструментов больше, backend-инструменты сложнее.
    Ответ написан
    4 комментария
  • Как из строки убрат слова начинаеющие с js_?

    maxaon
    @maxaon
    Убрать префиксы:
    "js_sex_woman sp it_b_woman js_disable js_у234styler_Form".replace(/(\s|^)(js_)([^s])/g,"$1$3")

    UPD:
    Убрать по префиксу:
    "sex_woman sp it_b_woman js_disable js_уLo3_r".replace(/(\bjs_[^\s]*\s*)/g,'')
    Ответ написан
    Комментировать
  • Проблема с подчеркиванием javaskript

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Не нужно ничего красить и подчёркивать в скриптах — для этого есть смена классов.

    Если же речь про динамическое создание правил CSS, то и здесь не нужно ничего делать с помощью css(). Нужно создавать их грамотно через коллекцию Stylesheets.
    Ответ написан
    Комментировать
  • Как сделать кешируемый AJAX-запрос?

    rOOse
    @rOOse
    Frontend developer
    '?r='+Math.random() разве не говорит чтобы постоянно скачивало?
    Ответ написан
    Комментировать
  • Как вам способ ускорить веб?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    эм... что?

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

    Что касается SPDY - то тут вы вообще ни капельки не попали. Там профит в том что используется одно tcp-соединение с сервером и мультиплексирование данных. Это позволяет снизить нагрузку на сервер, не тратить время на подключение к серверу по новой для загрузки следующих файлов и т.д. По сути при использовании этого протокола конкатенация файлов стилей и скриптов не должна приносить существенного профита, ибо соединение все равно будет одно и то же.

    p.s. приведенная вами статья не даром находится в хабе "ненормальное программирование".
    Ответ написан
    Комментировать