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

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

5
Достаточно ли того, чтобы методы отличались только по имени аргумента (не по типу)?
Достаточно ли, чтобы методы отличались только по имени аргумента (не по типу) или лучше назвать его более явно? Так , например T Find<T>(int id)против T FindById<T>(int id). Есть ли веская причина называть его более явно (т.е. добавлять ById) вместо сохранения только имени аргумента? Я могу подумать об одной причине, когда …

3
Является ли «композиция над наследством» нарушением «сухого принципа»?
Например, предположим, у меня есть класс для расширения других классов: public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } и некоторые подклассы: public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { } На самом деле, у подкласса нет никаких …

2
Почему методы, которые принимают неограниченное количество параметров, часто определяют перегрузки с меньшим количеством параметров?
Например, System.IO.Path.Combineметод в .NET имеет следующие перегрузки: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) Какой смысл последних трех? Первый будет охватывать их все, как будто вы смотрите внимательно, он использует paramsключевое слово. Аргумент обратной совместимости будет охватывать только Combine(String, String)вариант, так как это была единственная версия …

7
Есть ли необходимость сохранять тесты для простых (автономных) функций?
Учти это: public function polynominal($a, $b, $c, $d) { return $a * pow($x, 3) + $b * pow($x, 2) + $c * $x + $d; } Предположим, вы пишете различные тесты для вышеуказанной функции и доказываете себе и другим, что «это работает». Почему бы тогда не удалить эти тесты и …


7
Как принимать важные технические решения за минимальное время
У меня есть 2 дня, чтобы принять очень серьезное решение об инструментах и ​​платформах, которые моя компания собирается использовать для переноса своего приложения WPF на Linux / Android / iOS и так далее. Очевидно, я могу указать своим старшим, что двух дней вряд ли хватит на чтение обо всех возможных …

9
Почему школы учат массивы по списку? [закрыто]
Большинство заданий в моей школе для начальных классов программирования требовало от меня использования массивов. Сейчас я работаю полный рабочий день, и я никогда не использовал массив для любого проекта, над которым я работал. Даже в существующих проектах я нигде не видел использования массивов. На мой взгляд, список проще в использовании …

7
Каковы функциональные эквиваленты операторов обязательного разрыва и других проверок цикла?
Допустим, у меня есть логика ниже. Как написать это в функциональном программировании? public int doSomeCalc(int[] array) { int answer = 0; if(array!=null) { for(int e: array) { answer += e; if(answer == 10) break; if(answer == 150) answer += 100; } } return answer; } Примеры в большинстве блогов, статей …

5
Как определить, что метод может быть переопределен более сильным обязательством, чем определение, что метод может быть вызван?
От: http://www.artima.com/lejava/articles/designprinciples4.html Эрих Гамма: Я все еще думаю, что это правда, даже после десяти лет. Наследование - это крутой способ изменить поведение. Но мы знаем, что это хрупко, потому что подкласс может легко делать предположения о контексте, в котором вызывается метод, который он переопределяет. Между базовым классом и подклассом существует …

2
Что такое 4 и 5 поколения языков программирования? Их больше? [закрыто]
Поскольку это часто классифицируется на уровне школы / колледжа, популярные языки программирования (C #, Java, C ++) - это все языки 3-го поколения (с более высоким уровнем абстракции от физических частей машины). Кроме того, языки ассемблера классифицируются как 2-е, а машинные языки - как языки 1-го поколения. Изначально я думал, …

3
Есть ли преимущества SASS перед LESS? [закрыто]
Я пытаюсь провести исследование этих препроцессоров CSS. Есть ли какие-либо преимущества использования sass по сравнению с less в качестве препроцессора css? Факторы, которые я ищу, включают размер сообщества, зрелость проекта программного обеспечения и т. Д. Я знаю, что был еще один вопрос, связанный с этим, но он не был конструктивно …
36 css  less 

8
Должны ли возможности объекта идентифицироваться исключительно интерфейсами, которые он реализует?
isОператор C # и Javainstanceof позволяют вам ветвиться на интерфейсе (или, что еще более неуклюже, на его базовом классе), реализованном экземпляром объекта. Уместно ли использовать эту функцию для ветвления высокого уровня на основе возможностей, предоставляемых интерфейсом? Или базовый класс должен предоставлять логические переменные, чтобы обеспечить интерфейс для описания возможностей, которые …

5
Уместно ли иметь положительные комментарии в обзорах кода или это исключительно для конструктивной критики?
В последнее время я много пересматривал код, и я не уверен в положительных и отрицательных эффектах и ​​профессионализме добавления положительных и / или забавных комментариев в обзоры кода. Мы используем Github в качестве нашей платформы для проверки кода в моей команде, поэтому комментарии могут просматривать все. Я обычно стараюсь использовать …

10
Я начинающий. Могу ли я сразу начать изучать C ++ 11? или я должен выучить старый C ++? [закрыто]
Я новичок, и у меня мало знаний в программировании. Было бы хорошо, если бы я непосредственно изучал C ++ из книг, которые охватывают новый C ++ 11, или я должен изучать старые лучшие книги по C ++? Должен ли я иметь немного знаний о C ++ до изучения C ++ …
36 c++  c++11 

6
Как избежать большого и неуклюжего UITableViewController на iOS?
У меня проблема при реализации MVC-паттерна на iOS. Я искал в Интернете, но, похоже, не нашел хорошего решения этой проблемы. Многие UITableViewControllerреализации кажутся довольно большими. Большинство примеров, которые я видел, позволяют UITableViewControllerреализовать <UITableViewDelegate>и <UITableViewDataSource>. Эти реализации - большая причина, почему UITableViewControllerстановится большим. Одним из решений будет создание отдельных классов, которые …

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