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

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

4
Каким способом являются нисходящие и восходящие услуги?
Для системы, состоящей из нескольких служб, вызывающих друг друга (например, Front End -> Backend -> Storage), я часто слышал, как люди используют терминологию, такую ​​как «нисходящие» или «восходящие» службы. Мне не ясно, в каком направлении они означают. Данные передаются в обоих направлениях. Запросы перетекают от большего количества обращений к пользователю …

8
До ООП члены структуры данных оставались открытыми?
Когда структура данных (например, очередь) реализуется с использованием языка ООП, некоторые члены структуры данных должны быть частными (например, количество элементов в очереди). Очередь также может быть реализована на процедурном языке с использованием structфункций и набора функций, которые работают на struct. Тем не менее, на процедурном языке вы не можете сделать …

4
Распространение исключений: когда я должен ловить исключения?
MethodA вызывает MethodB, который, в свою очередь, вызывает MethodC. Нет обработки исключений в MethodB или MethodC. Но в MethodA есть обработка исключений. В MethodC происходит исключение. Теперь это исключение всплывает в методе А, который обрабатывает его соответствующим образом. Что не так с этим? На мой взгляд, в какой-то момент вызывающая …

3
В чем разница между подклассом и подтипом?
Самый высокий рейтинг ответа на этот вопрос о принципе замещения Лискова изо всех сил старается различить термины подтип и подкласс . Это также указывает на то, что некоторые языки объединяют два, а другие нет. Для объектно-ориентированных языков, с которыми я больше всего знаком (Python, C ++), «тип» и «класс» являются …

9
Что получают реляционные базы данных, устанавливая предопределенный тип данных для каждого столбца?
Я сейчас работаю с базой данных SQL, и это всегда вызывало у меня любопытство, но поиски в Google мало что показывают: почему строгие типы данных? Я понимаю, почему у вас есть несколько разных типов данных, например, например, насколько важно различать двоичные и простые текстовые данные . Вместо того, чтобы хранить …

4
Почему структуры и классы являются отдельными понятиями в C #?
При программировании на C # я наткнулся на странное решение о дизайне языка, которое просто не могу понять. Таким образом, C # (и CLR) имеют два совокупных типа данных: struct(тип значения, хранящийся в стеке, без наследования) и class(тип ссылки, хранящийся в куче, имеет наследование). Вначале эта настройка звучит неплохо, но …

2
Почему некоторые языки округляются до ближайшего целого числа?
Языки программирования, такие как Scheme (R5RS) и Python ( см. Этот Вопрос ), округляются до ближайшего четного целого числа, когда значение находится точно между окружающими целыми числами. В чем причина этого? Есть ли математическая идея, которая облегчает рассуждение о следующих вычислениях? (R5RS ссылается на стандарт IEEE с плавающей точкой как …

7
Почему метод финализации включен в Java?
Согласно этому посту , мы никогда не должны полагаться на вызываемый метод finalize. Так почему же Java вообще включила его в язык программирования? Кажется ужасным решение включить в любой язык программирования функцию, которая может быть вызвана.

7
Может ли система быть на 100% управляемой данными?
Мой новый начальник работал над этим проектом много лет. Я был здесь всего несколько недель, но я не уверен, что это возможно. Он хотел бы спроектировать систему, которая будет «на 100% основана на данных». Поэтому, если мы введем достаточно данных, мы можем определить и сгенерировать любое приложение. Мне удалось, по …


11
Переменные ошибок - это анти-шаблон или хороший дизайн?
Для обработки нескольких возможных ошибок, которые не должны останавливать выполнение, у меня есть errorпеременная, которую клиенты могут проверять и использовать для создания исключений. Это анти-паттерн? Есть ли лучший способ справиться с этим? Для примера этого в действии вы можете увидеть PHP mysqli API. Предположим, что проблемы видимости (средства доступа, открытая …

11
Лучшие практики или шаблоны проектирования для извлечения данных для отчетов и панелей мониторинга в доменном приложении
Во-первых, я хочу сказать, что этот вопрос / область игнорируется, поэтому, если этот вопрос нуждается в улучшении, помогите мне сделать этот замечательный вопрос, который может принести пользу другим! Я ищу советы и помощь от людей, которые внедрили решения, которые решают эту проблему, а не просто идеи, чтобы попробовать. По моему …

10
Почему бы не иметь ОС на основе языка высокого уровня? Являются ли языки низкого уровня более эффективными?
Не будучи самонадеянным, я хотел бы, чтобы вы рассмотрели возможность этого. Большинство современных ОС основаны на довольно низкоуровневых языках (в основном C / C ++). Даже в новых, таких как Android, используется JNI, а основная реализация находится на C На самом деле (это личное наблюдение) многие программы, написанные на C, …

7
Чего следует ожидать младшему разработчику от старшего руководителя команды?
Отказ от ответственности: высказанные мнения являются исключительно моими собственными и не выражают взгляды или мнения моего работодателя. Я работаю в небольшой компании, в которой немногие являются разработчиками, другие - QA / Test, а 1 - менеджером. Я присоединился к этой компании 1,5 года назад. 3 старших разработчика имеют опыт работы …

8
Какие существуют методы, чтобы избежать переполнения стека в рекурсивном алгоритме?
Вопрос Каковы возможные способы решения переполнения стека, вызванного рекурсивным алгоритмом? пример Я пытаюсь решить проблему Project Euler 14 и решил попробовать ее с помощью рекурсивного алгоритма. Тем не менее, программа останавливается с java.lang.StackOverflowError. Вполне понятно. Алгоритм действительно переполнял стек, потому что я пытался сгенерировать последовательность Коллатца для очень большого числа. …

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