Программная инженерия

67
В какой момент я могу сказать, что «выучил» язык?

За несколько лет программирования я играл со всеми, от Ruby до C ++. Я сделал все, от простого изучения базового синтаксиса (Ruby) до завершения нескольких крупных (для меня) проектов, которые расширили мои возможности языком. Учитывая это разнообразие (и тот факт, что истинное изучение языка...

67
Стоит ли брать на себя обязательство исключительно для устранения некритических опечаток?

Если я сталкиваюсь с некритической опечаткой в ​​коде (скажем, с ошибочным апострофом в операторе print (error)), стоит ли делать коммит для устранения этой ошибки или ее просто нужно оставить в покое? В частности, мне любопытно сопоставить суммирование журнала коммитов со значением разрешения этих...

67
Сколько свободы должен иметь программист в выборе языка и структуры?

Я начал работать в компании, которая в первую очередь ориентирована на C #. У нас есть несколько человек, которым нравятся Java и JRuby, но большинство программистов здесь любят C #. Меня наняли, потому что у меня большой опыт создания веб-приложений, и потому что я склоняюсь к новым технологиям,...

67
В чем смысл правила оптимизации программы 90/10?

Согласно Википедии, правило оптимизации программы 90/10 гласит, что «90% времени выполнения программы тратится на выполнение 10% кода» (см. Второй абзац здесь ). Я действительно не понимаю этого. Что именно это значит? Как можно потратить 90% времени выполнения только на выполнение 10% кода? А как...

67
Почему языки требуют скобок вокруг выражений, когда они используются с «if» и «while»?

Языки , как C, Java и C ++ все требуют скобки вокруг всего выражения при использовании в if, whileили switch. if (true) { // Do something } в отличие от if true { // Do something } Это кажется мне странным, потому что круглые скобки излишни. В этом примере trueэто отдельное выражение само по себе....

67
Как избежать логических ошибок в коде, когда TDD не помог?

Недавно я писал небольшой кусочек кода, который по-человечески укажет, сколько лет событию. Например, это может указывать на то, что событие произошло «Три недели назад», «Месяц назад» или «Вчера». Требования были относительно ясны, и это был идеальный случай для разработки, основанной на...

66
Получение непрограммистов, чтобы понять процесс разработки

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

66
Каковы предупреждающие признаки надвигающейся гибели, на которую стоит обратить внимание в проекте? [закрыто]

Работа над неудачным проектом - одна из немногих общих черт программистов, независимо от используемого языка, отрасли или опыта. Эти проекты могут быть отличным опытом обучения, душераздирающими бедствиями (или обоими!) И могут происходить по множеству причин: смена руководства недостаточно...

66
Честно говоря, вы предпочитаете ковбойское кодирование? [закрыто]

Большинство программистов, защищающих методологии, политически корректны, такие как Agile, Waterfall, RUP и т. Д. Некоторые из них следуют методологии, но не все. Честно говоря, если вы можете выбрать методологию, вы, безусловно, перейдете к господствующим «правильным» методологиям или предпочтете...

66
Лучшие практики для передачи устаревшего кода

Через пару месяцев коллега перейдет к новому проекту, и я унаследую один из его проектов. Чтобы подготовиться, я уже приказал Майклу Фезерсу « Эффективно работать с устаревшим кодом» . Но эти книги, а также большинство вопросов по унаследованному коду, которые я нашел до сих пор, касаются случая...

66
Я собираюсь бросить свою работу из-за нашей платформы: как я могу оставить продуктивное объяснение этому? [закрыто]

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

66
Является ли система типов Haskell формально эквивалентной системе Java? [закрыто]

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

66
У моего босса плохой случай «Не изобретено здесь» [закрыто]

Мой отдел специализируется на преобразовании данных клиентов в нашу схему базы данных, чтобы они могли использовать наше программное обеспечение. Прямо сейчас у нас есть приложения на C #, которые берут IDataReader(99% времени) a SqlDataReader, выполняют некоторую очистку и отображение, вставляют...

66
Должны ли репозитории возвращать IQueryable?

Я видел много проектов, у которых есть репозитории, которые возвращают экземпляры IQueryable. Это позволяет выполнять дополнительные фильтры и сортировку IQueryableпо другому коду, что переводится в другой генерируемый SQL. Мне любопытно, откуда взялся этот паттерн и хорошая ли это идея. Больше...

66
Почему «нижним» уровням приложений лучше не знать о «более высоких» уровнях?

В типичном (хорошо спроектированном) веб-приложении MVC база данных не знает о коде модели, код модели не знает о коде контроллера, а код контроллера не знает о коде представления. (Я полагаю, что вы могли бы даже начать с аппаратного обеспечения или даже дальше, и схема могла бы быть такой же.)...

66
Если мне нужно использовать часть памяти на протяжении всей жизни моей программы, действительно ли необходимо освободить ее прямо перед завершением программы?

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

66
Как вы переводите программу из разработки в релиз?

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

66
Нарушает ли конструктор, который проверяет свои аргументы, SRP?

Я стараюсь максимально придерживаться принципа единой ответственности (SRP) и привык к определенной схеме (для SRP по методам), в значительной степени полагаясь на делегатов. Я хотел бы знать, является ли этот подход обоснованным или есть ли какие-либо серьезные проблемы с ним. Например, чтобы...

66
Как и почему развивались платформы современных веб-приложений для отделения URL-маршрутов от файловой системы?

По сравнению с тем, что было около 10 лет назад, я заметил сдвиг в сторону фреймворков, использующих стиль маршрутизации, который отделяет путь URL-адреса от файловой системы. Обычно это достигается с помощью шаблона фронт-контроллера. А именно, если раньше URL-путь был сопоставлен непосредственно...