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

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

10
Использование сторонних библиотек - всегда использовать обертку?
Большинство проектов, в которых я участвую, используют несколько компонентов с открытым исходным кодом. Как общий принцип, всегда ли полезно избегать привязки всех компонентов кода к сторонним библиотекам и вместо этого проходить через инкапсулирующую оболочку, чтобы избежать проблем с изменениями? В качестве примера, большинство наших проектов PHP напрямую используют log4php в …

6
Когда свободно говорить на C #?
Во многих отношениях мне действительно нравится идея интерфейсов Fluent, но со всеми современными функциями C # (инициализаторы, лямбды, именованные параметры) я думаю, «стоит ли это того?» И «Правильный ли это шаблон для использовать?». Может ли кто-нибудь дать мне, если не принятую практику, хотя бы свой собственный опыт или матрицу решений …
78 c#  .net 

30
Вы должны быть хорошими в математике, чтобы быть хорошим программистом? [закрыто]
Кажется, что общепринятая мудрость предполагает, что хорошие программисты также хороши в математике. Или то, что эти два как-то неразрывно связаны. Многие книги по программированию, которые я прочитал, содержат много примеров, которые являются решениями математических задач или каким-то образом связаны с математикой, как если бы эти примеры имели смысл для большинства …
78 math 


17
Руководство по кодированию: методы не должны содержать более 7 операторов?
Я просматривал Рекомендации по кодированию AvSol для C #, и я согласен почти со всем, но мне действительно интересно посмотреть, что другие думают об одном конкретном правиле. AV1500 Методы не должны превышать 7 операторов. Метод, который требует более 7 операторов, выполняет слишком много или имеет слишком много обязанностей. Это также …

13
Почему Java не более широко используется для разработки игр? [закрыто]
Я не разработчик игр или что-то еще, но я знаю, что Java не очень широко используется для разработки игр. Java должна быть достаточно быстрой для большинства игр, так в чем же подвох? Я могу думать о некоторых причинах: Отсутствие разработчиков игр с опытом работы с Java Отсутствие хороших фреймворков для …

12
Что на самом деле не так с конечной точкой, возвращающей HTML, а не данные JSON?
Когда я впервые начал изучать PHP (около 5 или 6 лет назад), я узнал об Ajax и прошел «фазы»: Ваш сервер возвращает данные HTML, и вы помещаете их в innerHTML DOM Вы узнаете о форматах передачи данных, таких как XML (и говорите «ооо, значит, для этого он и используется»), а …
77 design  ajax 

11
Почему объекты Java не удаляются сразу после того, как на них больше нет ссылок?
В Java, как только у объекта больше нет ссылок, он становится пригодным для удаления, но JVM решает, когда объект фактически удален. Чтобы использовать терминологию Objective C, все ссылки на Java по своей природе являются "сильными". Однако в Objective-C, если у объекта больше нет сильных ссылок, объект немедленно удаляется. Почему это …

6
Все магические числа созданы одинаково?
На недавнем проекте, мне нужно , чтобы преобразовать из байтов в килобайты kibibyte . Код был достаточно прост: var kBval = byteVal / 1024; После того, как я написал это, я заставил остальную часть функции работать и двигаться дальше. Но позже я начал задаваться вопросом, вставил ли я в магический …

7
Сначала код против базы данных сначала
Когда я проектирую и создаю программное обеспечение, над которым я работаю, я обычно сначала проектирую и создаю внутренние таблицы SQL, а затем перехожу к реальному программированию. Хотя проект, над которым я сейчас работаю, озадачил меня. Вероятно, это связано с отсутствием хороших, твердых требований, но, к сожалению, на этот раз я …

7
Что такое раннее и позднее связывание?
Я продолжаю слышать о раннем и позднем связывании, но я не понимаю, что это такое. Я нашел следующее объяснение, которое я не понимаю: Раннее связывание относится к присвоению значений переменным во время разработки, тогда как позднее связывание относится к присвоению значений переменным во время выполнения. Может ли кто-нибудь определить два …

11
Это плохая практика, чтобы модифицировать код строго для целей тестирования
У меня есть спор с коллегой-программистом о том, является ли хорошей или плохой практикой модифицировать рабочий фрагмент кода только для того, чтобы сделать его тестируемым (например, с помощью модульных тестов). Мое мнение таково, что все в порядке, конечно, в рамках поддержания хороших объектно-ориентированных и программных практик (не «все обнародовать» и …

11
Почему программная ОС специфична?
Я пытаюсь определить технические детали того, почему программное обеспечение, созданное с использованием языков программирования для определенных операционных систем, работает только с ними. Насколько я понимаю, двоичные файлы специфичны для определенных процессоров из-за конкретного машинного языка процессора, который они понимают, и разных наборов команд между различными процессорами. Но откуда берется специфика …

10
Почему массивы C не отслеживают их длину?
Что послужило причиной отсутствия явного хранения длины массива в массиве C? На мой взгляд, есть веские причины для этого, но не очень много в поддержку стандарта (C89). Например: Наличие длины в буфере может предотвратить переполнение буфера. Стиль Java arr.lengthпонятен и избавляет программиста от необходимости поддерживать много ints в стеке при …
77 c 

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

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