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

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

3
Функциональное программирование и текстовые приключения
Это в основном теоретический вопрос о FP, но я возьму текстовые приключения (например, Zork старой школы), чтобы проиллюстрировать мою точку зрения. Мне бы хотелось узнать ваше мнение о том, как бы вы смоделировали симуляцию с состоянием с помощью FP. Текстовые приключения действительно требуют ООП. Например, все «комнаты» являются экземплярами Roomкласса, …

9
Почему не может быть никаких неявных преобразований?
Насколько я понимаю, неявные преобразования могут вызвать ошибки. Но это не имеет смысла - не должны ли нормальные преобразования также вызывать ошибки? Почему бы не иметь len(100) работать на языке, интерпретируя (или компилируя) его как len(str(100)) тем более, что это единственный способ (я знаю) для его работы. Язык знает, что …

3
Каков наилучший способ структурировать и называть файлы, которые содержат универсальные классы с одинаковыми именами?
В моем текущем проекте я столкнулся с требованием создать универсальные классы с тем же именем, но с разным количеством универсальных параметров. Например: MyClass<T1> MyClass<T1, T2> MyClass<T1, T2, T3> Учитывая, что я хочу все это в одном пространстве имен, я не понимаю, как структурировать и назвать мои классы и файлы? Если …
14 c#  .net 

3
Должны ли мы добавить конструкторы к структурам?
Мы часто используем структуры c ++ для определения структуры данных, а не класса, который может быть законченным модулем с методами-членами. Теперь, в глубине души, мы знаем, что они оба одинаковы (грубо говоря). Тот факт, что мы часто используем / относимся к структурам как к объектам, содержащим только данные, заставляет нас …

3
Группировка нескольких Git-репозиториев, которые являются частью одного и того же общего проекта
Допустим, у меня есть проект, который имеет несколько компонентов: компонент сервера, компонент веб-приложения, компонент iOS, компонент Android и т. Д. Все эти компоненты являются отдельными кодовыми базами, но также слабо связаны (например, изменение на сервере). код может потребовать изменения всех других компонентов тоже) Какой самый эффективный способ в Git организовать …
14 git 

2
Правильная терминология в теории типов: типы, конструкторы типов, виды / сортировки и значения
В ответ на предыдущий вопрос началась небольшая дискуссия о правильной терминологии для определенных конструкций. Как я не нашел вопрос (кроме этого , или что , что не совсем правильно) для решения этого ясно, что я делаю это новый. Сомнительные термины и их отношения: тип, конструктор типа, параметр типа, виды или …

5
Обработка исключений в программе, которая должна работать 24/7
Я читал, что мы должны ловить только те исключения, которые могут быть обработаны, что делает отлов базового класса исключений (в данном случае C #) плохой идеей (помимо других причин). В настоящее время я являюсь частью проекта, в котором до сих пор мне не удалось увидеть ничего, кроме базового исключения. Я …

6
Каков наилучший способ масштабирования и разделения гибкой команды при создании веб-приложения?
Недавно я присоединился к компании, где я работаю мастером по разработке гибкого проекта по созданию веб-приложения. Команда как раз должна быть максимальным размером для гибкой команды (ожидается 9 на следующей неделе). Мы говорили о возможном разделении команды на две команды, не столько чтобы сократить количество заездов (которые на данный момент …

2
Причина оператора возврата в рекурсивном вызове функции
Я просто сомневался. Следующая подпрограмма (например, для поиска элемента в списке) имеет оператор return в конце: list *search_list(list *l, item_type x) { if (l == NULL) return(NULL); if (l->item == x) return(l); else return( search_list(l->next, x) ); } Я не могу получить значение оператора return в конце (т. Е. Return …


2
Что дядя Боб подразумевает под «именами именных»?
Я читаю Чистый код от дяди Боба. Поскольку я не являюсь носителем английского языка, я не мог понять следующее утверждение: Классы и объекты должны иметь существительное или словосочетание имена , как Customer, WikiPage, Accountи AddressParser. Избегайте таких слов , как Manager, Processor, Dataили Infoво имя класса. Имя класса не должно …

2
Объектно-ориентированное и векторное программирование
Я разрываюсь между объектно-ориентированным и векторным дизайном. Я люблю способности, структуру и безопасность, которые объекты дают всей архитектуре. Но в то же время скорость очень важна для меня, и наличие простых переменных с плавающей точкой в ​​массиве действительно помогает в векторных языках / библиотеках, таких как Matlab или numpy в …

3
Полезность обхода двоичных деревьев до и после заказа
Это может быть очень наивно, но мне было интересно, это контекст бинарных деревьев (простые, отсортированные и сбалансированные) всех типов обхода: предварительный заказ в глубину в порядке глубины первый заказ на глубину в ширину Какова реальная полезность до и после заказа? Я имею в виду, есть ли какой-то тип и / …

2
Shared Cache - Лучшая практика недействительности
Я хотел бы знать, как лучше подходить для аннулирования / обновления объектов кэша. Предпосылки Наличие удаленного сервера memcached (служит кешем для нескольких приложений) Все серверы размещены на Azure (аффинные регионы, одни и те же центры обработки данных). Размер объекта кэша варьируется от 200 байт до 50 килобайт Подход 1 (хранить …

3
В MVC DAO должен вызываться из контроллера или модели
Я видел различные аргументы против прямого вызова DAO из класса Controller, а также DAO из класса Model. Фактически я лично чувствую, что если мы следуем шаблону MVC, контроллер должен быть связан не с DAO, а с классом Model. должен вызывать DAO изнутри, а контроллер должен вызывать класс модели. Почему мы …

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