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

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

3
Насколько полезен «истинный» размер переменных в C?
Одна вещь, которая всегда интуитивно поражала меня как положительная особенность C (ну, собственно, его реализаций, таких как gcc, clang, ...), это то, что он не хранит скрытую информацию рядом с вашими переменными во время выполнения. Под этим я подразумеваю, что если вы, например, хотите переменную «x» типа «uint16_t», вы можете …

5
Что значит объявить переменную?
Многие низкоуровневые программы используют ключевое слово volatile для типов для отображения памяти и тому подобного, однако я в некотором роде смущен тем, что ДЕЙСТВИТЕЛЬНО делает в фоновом режиме. Другими словами, что это значит, когда компилятор не «оптимизирует» адрес памяти?
9 c++  c  low-level 

2
Программирование на ориентированные на данные интерфейсы
Часть нашего кода написана в следующем стиле: // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List<IScheduledTask> Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { public string …

1
Похоже, что объединение Python фокусируется не на элементах, которые нужно объединить, а на символе по сравнению с Ruby или Smalltalk по соображениям дизайна?
Я думал, что один из краеугольных камней ООП состоит в том, что у нас есть объекты, с которыми мы имеем дело, и затем мы отправляем им сообщения. Поэтому может показаться естественным, что у меня есть коллекция предметов, и мне нужно поместить их в одну строку, чтобы сделать это: ["x", "o", …

2
Принцип сегрегации интерфейса: что делать, если интерфейсы имеют значительное перекрытие?
Из Agile Software Development, Принципы, Шаблоны и Практики: Pearson New International Edition : Иногда методы, вызываемые различными группами клиентов, перекрываются. Если перекрытие небольшое, то интерфейсы для групп должны оставаться отдельными. Общие функции должны быть объявлены во всех перекрывающихся интерфейсах. Класс сервера будет наследовать общие функции от каждого из этих интерфейсов, …


2
Почему неуместно использовать UML-диаграммы для планирования организации вашего кода?
Так что да, диаграммы могут быть неуместны время от времени. Когда они неуместны? Когда вы создаете их без кода, чтобы проверить их, а затем намерены следовать им. Нет ничего плохого в том, чтобы нарисовать диаграмму для изучения идеи. Гибкая разработка программного обеспечения: принципы, шаблоны и практики - Роберт К. Мартин …

1
Оценка набора данных с помощью строковой формулы в php
Мне было поручено обновить некоторые условия в приложении. У меня есть набор данных для оценки, и он был жестко запрограммирован в приложении следующим образом: $arr = array( 'a' => 'apple', 'b' => 'orange', 'c' => 1, 'd' => 2, 'e' => 5, 'f' => 'green', 'g' => 'red', 'h' => …
9 php 

1
Подъем в Javascript === Компиляция?
Я наткнулся на интересную точку зрения на недавнем собеседовании. Подъем в Javascript - это перемещение объявлений переменных и функций вверху скрипта. Можем ли мы назвать этот этап компиляцией ? Мне известно о том, что интерпретатор Javascript имеет 2 прохода над входным скриптом, где на первом проходе он выполняет подъем, а …

1
Источник событий только для случаев, когда записи редки?
Я читаю источники событий и не могу перестать задавать себе вопрос, имеет ли это смысл только в экзотических ситуациях, когда записи очень редки или требуется аудит военного уровня. Неисключительная система с любым значительным использованием может производить от сотен до тысяч записей в день, переводя, скажем, в миллион или 2 записи …

4
Каков наиболее эффективный способ хранения этих данных?
Я отвечаю за переписывание старого кода VB. Я понимаю, как это работает, но я чувствую, что есть гораздо более эффективный способ сделать то, что они сделали. Я просто не могу понять, что это такое. Вот надуманный пример, который с точки зрения требований к данным действительно похож на то, что мне …

8
Проекты и методы для защиты от ошибочных нулевых записей из базы данных
Одна часть моей программы извлекает данные из многих таблиц и столбцов в моей базе данных для обработки. Некоторые из столбцов могут быть null, но в текущем контексте обработки это ошибка. Этого не должно "теоретически" происходить, поэтому, если это так, это указывает на неверные данные или ошибку в коде. Ошибки имеют …

2
Могу ли я проверить наличие аннотации в модульном тесте?
У меня есть иерархия классов Java, которые образованы абстрактным классом и его N-расширениями. В абстрактном классе у меня есть метод, который аннотируется аннотацией @Remove. Несмотря на то, что мы не получим никаких исключений, мы не получим быстрый отказ, если эта аннотация будет удалена, мы можем получить исключения из памяти, поэтому …

3
Разница между 3-уровневой архитектурой и MVC (модель, контроллер представления) в ASP.Net
Я хотел бы знать, чем отличается 3-уровневая архитектура от MVC (Model, View Controller) в ASP.Net, поскольку мне кажется, что применяется та же архитектура. В 3- х уровневых мы имеем User Services Layer, BusinessLayerи DataAccessLayer, с другой стороны , у нас есть Model, Viewи Controller. Это кажется той же архитектурой для …

2
Почему Akka хорош для параллелизма?
Я новичок в Akka и актерском фреймворке - я уверен, что упускаю что-то очевидное, пожалуйста, примите мои извинения заранее. Я постоянно читаю, что одним из главных моментов при выборе Akka является управление параллелизмом. Мне не ясно, почему Акка такой особенный; Я понимаю, что есть много маленьких актеров, которые очень легки …

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