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

48
LSP vs OCP / Замена Лискова VS Open Закрыть

Я пытаюсь понять твердые принципы ООП и пришел к выводу, что у LSP и OCP есть некоторые сходства (если не сказать больше). принцип открытого / закрытого состояния гласит, что «программные объекты (классы, модули, функции и т. д.) должны быть открыты для расширения, но закрыты для модификации»....

48
Как и зачем выбирать между методами именования с префиксами «get» и «find»

Мне всегда трудно понять, стоит ли мне называть определенный метод, начиная с « getSomethingпротив» findSomething. Проблема заключается в создании помощников для плохо разработанных API. Это обычно происходит при получении данных от объекта, который требует объекта в качестве параметра. Вот простой...

48
Как назвать переменную, когда слово является существительным и глаголом

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

48
Насколько безопасны скрытые запросы AJAX, которые имитируют производительность?

Что такое скрытый запрос AJAX? Я заметил увеличение использования скрытых запросов AJAX, предназначенных для немедленного выполнения действий пользователя. Я буду называть этот тип запроса AJAX неблокирующим. Это AJAX-запрос, выполненный без уведомления пользователя, что он выполняется, он...

48
Обработка 1D структуры данных как 2D сетки

Я работаю с собственным классом, который представляет 2D-изображение в виде одномерного массива. Например, если вы хотите изменить один пиксель, вам нужно узнать, как получить индекс из x,yкоординат. Итак, допустим, у нас есть одномерный массив, array1dподобный этому: array1d = [ a, b, c, d, e, f,...

48
Почему виртуальные машины должны быть «стековыми машинами» или «регистрировать машины» и т. Д.?

(Это чрезвычайно новый вопрос). Я немного изучал виртуальные машины. Оказывается, многие из них спроектированы очень похоже на физические или теоретические компьютеры. Я читал, что JVM, например, является «машиной стека». Это означает (и исправьте меня, если я ошибаюсь), что он хранит всю свою...

48
Почему метод PATCH не идемпотентен?

Мне было интересно об этом. Предположим , у меня есть userресурс с idи nameполей. Если я хочу обновить поле, я мог бы просто сделать запрос PATCH к ресурсу, как это PATCH /users/42 {"name": "john doe"} И тогда приложение обновит имя пользователя 42. Но почему, если я повторю этот запрос, результат...

48
Что делать с заброшенными проблемами в GitHub?

Если кто-то открывает проблему на GitHub, но запрашивается дополнительная информация, чтобы воспроизвести ошибку и никогда не сообщается, какова обычная процедура? Пример . Здесь автор утверждает, что «навигация разбивает». Хотя я полагаю, что это исправлено, я хотел бы, чтобы от автора было...

48
Когда НЕ использовать виртуальные деструкторы?

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

48
Может ли git commit иметь более 2 родителей?

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

48
Что может быть недостатком для определения класса как подкласса списка самого себя?

В моем недавнем проекте я определил класс со следующим заголовком: public class Node extends ArrayList<Node> { ... } Однако, после обсуждения с моим профессором CS, он заявил, что урок будет «ужасным для памяти» и «плохой практикой». Я не обнаружил, что первое особенно верно, а второе...

48
Должен ли я переместить условие разрыва в поле условия, если это возможно, внутри цикла for? [закрыто]

Иногда мне нужны циклы, которые нуждаются в перерыве: for(int i=0;i<array.length;i++){ //some other code if(condition){ break; } } Мне неудобно писать if(condition){ break; } потому что он потребляет 3 строки кода. И я обнаружил, что цикл можно переписать так: ↓ for(int i=0;i<array.length...

48
Помогает ли разделение потенциально монолитного приложения на несколько более мелких приложений предотвратить ошибки? [закрыто]

Другой способ спросить это; почему программы имеют тенденцию быть монолитными? Я думаю о чем-то вроде пакета анимации, такого как Maya, который люди используют для различных рабочих процессов. Если бы возможности анимации и моделирования были разделены на их собственное отдельное приложение и...

47
Каковы недостатки тестового программирования?

Это все ярость в наши дни. «Каждый» рекомендует это. Это само по себе делает меня подозрительным. Какие недостатки вы обнаружили при выполнении тестовой (управляемой тестом) разработки? Я ищу личный опыт от знающих практиков - я могу прочитать гипотетические размышления о сотне подражателей в...

47
Есть ли жизнеспособная альтернатива методологии гибкой разработки?

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

47
Почему на вид непропорционально большое количество программистов просто, ну, не приятно? [закрыто]

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

47
Каковы некоторые хорошие практики перед проверкой исходного кода? [закрыто]

Моя команда использует Team Foundation Server для контроля исходного кода, и сегодня я исправил некоторые ошибки и приложение для тестирования дыма, прежде чем зарегистрировал его, но забыл прокомментировать некоторый код. (Этот код сделал интерфейс немного странным.) Я хочу знать, какие передовые...

47
Можете ли вы изменить лицензию, как только вы ее выберете?

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

47
Как мне стать ведущим разработчиком? [закрыто]

Я стал ведущим разработчиком в конкретном проекте, но мне трудно сосредоточиться на общей картине и убедиться, что все части проекта покрыты. Что я должен иметь в виду при управлении этим проектом? Как я могу убедиться, что все обрабатывается так, как...

47
Что Алан Кей имел в виду под «заданием» в «Ранней истории Smalltalk»?

Я читал «Раннюю историю Smalltalk», и есть несколько упоминаний о «назначении», которые заставляют меня усомниться в моем понимании его значения: Хотя ООП исходило из многих мотивов, два были центральными. Крупномасштабная задача заключалась в том, чтобы найти лучшую модульную схему для сложных...