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

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

3
Как представить (перечислить) типы в публичном API
Я работаю над простым API-интерфейсом, который хочу использовать для собственного клиента и который будет открыт для публики в будущем. У меня есть объекты «Предмет», которые могут иметь разные «типы». Тип является C "typedef enum", на данный момент у меня есть: typedef enum { ItemTypeBool, ItemTypeNumber, ItemTypeDate, } ItemType; (Я могу …

2
Выбор правильного шаблона дизайна
Я всегда осознавал важность использования шаблонов дизайна. Мне интересно, как другие разработчики выбирают наиболее подходящий. Используете ли вы ряд характеристик (например, блок-схему), чтобы помочь вам принять решение? Например: Если объекты связаны, но мы не хотим указывать конкретный класс, рассмотрим абстрактный Когда создание экземпляров оставлено производным классам, рассмотрим Factory Необходим доступ …

6
Какие классы должны быть автоматически подключены Spring (когда использовать внедрение зависимостей)?
Я уже некоторое время использую Dependency Injection в Spring, и я понимаю, как это работает и каковы некоторые плюсы и минусы его использования. Однако, когда я создаю новый класс, я часто задаюсь вопросом - должен ли этот класс управляться Spring IOC Container? И я не хочу говорить о различиях между …

7
Почему шаблон проектирования метода фабрики полезнее, чем иметь классы и вызывать их по отдельности?
Из шаблонов проектирования «Банды четырех» есть метод Фабрики: class Factory(product) case product when a new A when b new B when c new C end new Factory(a) Почему это более полезно , чем иметь три класса, a, bи cи называя их по отдельности?

5
Почему C # и Java используют равенство ссылок по умолчанию для '=='?
Некоторое время я размышлял, почему Java и C # (и я уверен, что другие языки) по умолчанию ссылаются на равенство для ==. В программировании, которое я делаю (что, безусловно, является лишь небольшим подмножеством проблем программирования), я почти всегда хочу логическое равенство при сравнении объектов вместо ссылочного равенства. Я пытался придумать, …


4
Абстрактный тип данных и структура данных
Мне довольно сложно понять эти термины. Я искал в Google и прочитал немного в Википедии, но я все еще не уверен. Я определил, что: Абстрактный тип данных - это определение нового типа, описываются его свойства и операции. Структура данных - это реализация ADT. Многие ADT могут быть реализованы как одна …

8
Является ли хорошей практикой использование меньших типов данных для переменных для экономии памяти?
Когда я впервые выучил язык C ++, я узнал, что, кроме int, float и т. Д., В этом языке существуют меньшие или большие версии этих типов данных. Например, я мог бы назвать переменную х int x; or short int x; Основное отличие состоит в том, что short int занимает 2 …

7
Функциональное программирование по сравнению с ООП с классами
В последнее время меня интересуют некоторые концепции функционального программирования. Я использовал ООП уже некоторое время. Я вижу, как я могу построить довольно сложное приложение в ООП. Каждый объект будет знать, как делать то, что делает объект. Или что-нибудь, что делает класс родителей. Так что я могу просто сказать, Person().speak()чтобы заставить …

9
Когда проводить рефакторинг
Я прочитал большую часть книги Рефакторинга Фаулера и провел рефакторинг многих приложений в моем прошлом, большом и малом. Одна из самых сложных вещей, которые я нахожу для обучения, - это «когда» проводить рефакторинг. Я склонен делать это, основываясь на чувстве кишки, которое в прошлом мне очень помогало. Однако, вступая в …

7
Как быстро найти очень большой список строк / записей в базе данных
У меня следующая проблема: у меня есть база данных, содержащая более 2 миллионов записей. Каждая запись имеет строковое поле X, и я хочу отобразить список записей, для которых поле X содержит определенную строку. Каждая запись имеет размер около 500 байт. Чтобы сделать это более конкретным: в графическом интерфейсе моего приложения …

5
Javascript модульность, серверный MVC и бизнес-реальность
Я понимаю, что это очень широкий вопрос, но я работал с различными аспектами этой проблемы индивидуально и изо всех сил стараюсь объединить все концепции и технологии. Я хотел бы указать, что ответы должны включать эти технологии: C # MVC 3 с бритвой Javascript с JQuery Все, что выходит за рамки …

19
Потребуются ли приложениям реального мира 128-битное плоское адресное пространство?
Это немного "одного мегабайта должно хватить на всех", но ... 64-разрядное плоское адресное пространство позволяет в 4,3 миллиарда раз больше пространства, чем 32-разрядное адресное пространство. Это 17 179 869 184 ГиБ. Очевидно, что переход от 8 бит к 16 битам был довольно быстрым (я смотрю на вещи подростком в 80-х, …

6
Чем Agile отличается от XP?
Я прочитал несколько статей в Интернете, чтобы узнать, как Agile, XP, Scrum, парное программирование отличаются друг от друга / связаны друг с другом, и я получил следующую строку: Scrum и XP почти одинаковы. XP имеет более короткий период релизов, чем Scrum Парное программирование используется в методологиях Agile и XP. Но …

11
Что делает проект большим? [закрыто]
Просто из любопытства, в чем разница между малым, средним и крупным проектом? Это измеряется строками кода или сложностью или как? Я строю бартерную систему и до сих пор около 1000 строк кода для входа / регистрации. Несмотря на то, что есть много LOC, я бы не стал считать это большим …
32 project 

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