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

Q & A для профессионалов, преподавателей и студентов, работающих в жизненном цикле разработки систем

15
Является ли нежелательным создание функции, которая по существу переименовывает встроенную функцию?
Я запутался в функциях min и max в определенных контекстах. В одном контексте, когда вы используете функции для получения большего или меньшего из двух значений, это не проблема. Например, //how many autographed CD's can I give out? int howManyAutographs(int CDs, int Cases, int Pens) { //if no pens, then I …

6
Должен ли я создать класс, если моя функция сложна и имеет много переменных?
Этот вопрос несколько не зависит от языка, но не полностью, поскольку объектно-ориентированное программирование (ООП) отличается, например, в Java , которая не имеет функций первого класса, чем в Python . Другими словами, я чувствую себя менее виноватым за создание ненужных классов в таком языке, как Java, но я чувствую, что может …

9
Должен ли я принимать пустые коллекции в моих методах, которые проходят по ним?
У меня есть метод, где вся логика выполняется внутри цикла foreach, который перебирает параметр метода: public IEnumerable<TransformedNode> TransformNodes(IEnumerable<Node> nodes) { foreach(var node in nodes) { // yadda yadda yadda yield return transformedNode; } } В этом случае отправка пустой коллекции приводит к пустой коллекции, но мне интересно, если это неразумно. …

10
Что такого плохого в goto, когда оно используется для этих очевидных и актуальных случаев?
Я всегда знал, что gotoэто что-то плохое, запертое в подвале где-то, что никогда нельзя увидеть навсегда, но сегодня я наткнулся на пример кода, который имеет смысл использовать goto. У меня есть IP-адрес, где мне нужно проверить, есть ли в списке IP-адресов, а затем продолжить с кодом, в противном случае выдается …
40 php  goto 

10
Применимость принципа единой ответственности
Недавно я столкнулся с кажущейся тривиальной архитектурной проблемой. У меня был простой репозиторий в моем коде, который назывался так (код на C #): var user = /* create user somehow */; _userRepository.Add(user); /* do some other stuff*/ _userRepository.SaveChanges(); SaveChanges была простая оболочка, которая фиксирует изменения в базе данных: void SaveChanges() …

11
Можно ли когда-нибудь зафиксировать неработающий код?
Это хорошая идея требовать, чтобы фиксировать только рабочий код? Этот коммит не должен оставлять репозиторий в рабочем состоянии, так как: ... мы находимся на ранних стадиях разработки, код еще не стабилен. ... вы единственный разработчик в проекте. Вы знаете, почему вещи не работают. Кроме того, вы не останавливаете чью-либо работу, …

16
Хорошая идея поместить номера ошибок в комментарии в начале исходного файла? [закрыто]
Является ли хорошей практикой помещать номера ошибок в самом файле внутри заголовка комментария? Комментарии будут выглядеть примерно так: MODIFIED (MM/DD/YY) abc 01/21/14 - Bug 17452317 - npe in drill across in dashboard edit mode cde 01/17/14 - Bug 2314558 - some other error description Это кажется полезным, но считается ли …

2
Смешивание угловых и ASP.NET MVC / Web API?
Я пришел с использованием ASP.NET MVC / Web API, и теперь я начинаю использовать Angular, но я не знаю, как правильно их смешивать. После того, как я использую Angular, концепции на стороне сервера MVC все еще дают какое-либо значение? Или я должен строго использовать веб-API исключительно для получения данных для …

5
Является ли лямбда-выражение чем-то большим, чем анонимный внутренний класс с одним методом?
В Java 8 появилась новая реклама с долгожданными лямбда-выражениями; каждые 3 дня появляется новая статья о том, как они круты. Насколько я понял, лямбда-выражение - это не что иное, как анонимный внутренний класс с одним методом (по крайней мере, на уровне байт-кода). Помимо этого он имеет еще одну приятную особенность …

3
Что такого замечательного в Clojure? [закрыто]
В последнее время я взглянул на Clojure и наткнулся на этот пост о Stackoverflow, в котором рассказывается о некоторых проектах, которые следуют лучшим рекомендациям, и в целом о хорошем коде Clojure. Я хотел разобраться с языком после прочтения некоторых основных уроков, поэтому я взглянул на некоторые "реальные" проекты. Посмотрев на …
40 clojure 

4
Достижение нулевого времени простоя развертывания
Я пытаюсь добиться развертывания без простоев, чтобы я мог развертывать меньше в нерабочее время и больше в «более медленные» часы - или в любое время, теоретически. Моя текущая настройка несколько упрощена: Веб-сервер A (приложение .NET) Веб-сервер B (приложение .NET) Сервер базы данных (SQL Server) Мой текущий процесс развертывания: «Остановить» сайты …

7
Когда вы меняете свой основной / младший / номер версии патча?
Возможный дубликат: какое «соглашение об именах версий» вы используете? Измените ли вы номера основных / второстепенных / патчей прямо перед выпуском или сразу после? Пример: вы только что выпустили 1.0.0 для мира (хазз!). Но подождите, не празднуйте слишком много. 1.1.0 выходит через шесть недель! Таким образом, вы исправляете ошибку и …
40 versioning 

9
Что программисты делали до переменной области, где все глобально?
Итак, мне приходится иметь дело с, казалось бы, архаичным языком (называемым PowerOn), где у меня есть основной метод, несколько типов данных для определения переменных, и у меня есть возможность иметь подпроцедуры (по существу, пустые методы), которые не возвращают тип и не принимает никаких аргументов. Проблема здесь в том, что ВСЕ …
40 scope 

9
В поисках значимого и веского аргумента в пользу антивирусного программного обеспечения на машинах разработки [закрыто]
При формировании мнений рекомендуется придерживаться схоластической традиции - стараться как можно сильнее против своего мнения и пытаться найти контраргументы. Однако, как бы я ни старался, я просто не могу найти разумных аргументов в пользу антивируса (и связанных с ним мер безопасности) на машинах разработки. Аргументы против антивируса (AV) в разработке …

1
Вносить изменения из разветвленного репо без запроса на GitHub?
Я новичок в сообществе социального кодирования и не знаю, как действовать правильно в этой ситуации: Я создал GitHub Repository пару недель назад. Кто-то раздвоил проект и внес небольшие изменения, которые были в моей работе. Я в восторге, кто-то разветвлял мой проект и нашел время, чтобы добавить к нему. Я хотел …
40 git  github  etiquette 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.