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

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

4
Заменить Условное на Полиморфизм надлежащим образом?
Рассмотрим два класса Dogи Catкак в соответствии с Animalпротоколом (с точки зрения языка программирования Swift. Это было бы интерфейс в Java / C #). У нас есть экран со смешанным списком собак и кошек. Есть Interactorкласс, который обрабатывает логику за кулисами. Теперь мы хотим предоставить пользователю подтверждение, когда он хочет …

2
Архитектура системы оповещения
Я хотел бы создать систему, которая обрабатывает предупреждающие сообщения от различных программ и может обрабатывать эти оповещения для потребителей, использующих новейшие технологии, по электронной почте. Все это будет содержаться в одной внутренней сети. Я думаю, что я хочу, чтобы базовая архитектура выглядела примерно так: Основная проблема, с которой я столкнулся …

5
Гибкая методология: быстро и грязно или сначала планировать?
Agile вопрос: верит ли agile в налаживание работы и «быстрый и грязный путь» - или agile предпочитает строить с нуля с нуля? Или это не методологический вопрос, а вопрос, который вы оцениваете в каждом конкретном случае? Технически я «переделываю» фундамент системы, после того как я уже построил большую часть самой …
10 agile 

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

6
Как избежать бесконечно повторяющихся одинаково неоптимальных проектов?
Поэтому, вероятно, как и многие, я часто сталкиваюсь с головными болями, связанными с проблемами проектирования, в которых, например, есть какой-то шаблон / подход к проектированию, который, кажется, интуитивно подходит к проблеме и имеет желаемые преимущества. Очень часто есть некоторая оговорка, которая затрудняет реализацию шаблона / подхода без какой-либо обработки, которая …

3
Это хорошая практика, чтобы обернуть связанный набор свойств в свою собственную структуру / класс?
Написание объекта User в Swift, хотя мой вопрос касается любого строго типизированного языка. Пользователь может иметь несколько ссылок (FacebookProfile, InstagramProfile и т. Д.). Несколько вопросов по этому поводу. Это хорошая практика, чтобы обернуть ссылки в свой собственный объект? struct User { var firstName: строка var lastName: строка var email: string …

4
Как именно компилятор восстанавливается после ошибки типа?
Я прочитал несколько статей, статей и раздел 4.1.4, глава 4 « Компиляторы: принципы, методы и инструменты» (2-е издание) (он же «Книга Дракона»), в которых все обсуждается тема исправления синтаксических ошибок компилятора. Однако, после экспериментов с несколькими современными компиляторами, я увидел, что они также восстанавливаются после семантических ошибок, а также синтаксических …

1
Почему большинство анонимных функций не могут быть скомпилированы JIT и никогда не будут оптимизированы?
Я только что прочитал https://techfindings.one/archives/2652 о функциональном программировании и натолкнулся на это: анонимные функции часто не могут быть скомпилированы JIT и никогда не будут оптимизированы Может кто-нибудь объяснить мне, почему это так?

4
Каковы возможные способы избежать дублирования, когда вы не можете добавить уникальный индекс
Я застрял в проблеме параллелизма. Это типичная проблема, когда пользователь отправляет 2 или 3 транзакции для сохранения некоторых данных, которые НЕ ДОЛЖНЫ дублироваться в БД, в случае дублированной записи вы должны вернуть ошибку. Эта проблема проста, когда вы можете просто добавить индекс (уникальный) в столбец, где вы храните хеш. Но …

1
Почему нуль-безопасные операторы (например, «оператор Элвиса») были отклонены как часть «Project Coin» Java 7?
Одной из предлагаемых функций Java 7 Project Project Coin была «Оператор Элвиса». Отчет о 2009 JavaOne презентации по проекту Coin описал его как таковой: Одной из «мелких особенностей», рассматриваемых в этой презентации, является так называемый «оператор Элвиса», более краткая версия троичного оператора. Я обнаружил, что мне не хватает некоторых функций …
10 java  api-design 

5
Как разрешить взаимозависимость классов в моем коде C ++?
В моем проекте C ++ у меня есть два класса, Particleи Contact. В Particleклассе, у меня есть переменная - член std::vector<Contact> contacts, содержащий все контакты Particleобъекта, а также соответствующие функции - члены getContacts()и addContact(Contact cont). Таким образом, в «Particle.h» я включаю «Contact.h». В Contactклассе я хотел бы добавить код в …

2
Как спроектировать совокупные границы?
Я хотел бы написать приложение что-то вроде электронной коммерции. И вы знаете, что в аналогичных приложениях продукты могут иметь разные свойства и особенности. Чтобы смоделировать такую ​​возможность, я создал следующие сущности модели предметной области: Категория - это что-то вроде «электроника> компьютеры», то есть виды товаров. Категории содержат список свойств (List …

2
Как безсерверные архитектуры управляют соединениями с базой данных?
Говорят, что основным преимуществом бессерверной архитектуры является то, что таким программам не требуется выделенный сервер для непрерывной работы. Затем вызываются по запросу и останавливаются при выходе из функции. Это означает, что безсерверная программа должна быстро запускаться, чтобы быть отзывчивой. Как тогда он обрабатывает трудоемкие действия, такие как соединение с базой …

5
Можно ли когда-нибудь нарушать LSP?
Я занимаюсь этим вопросом , но переключаюсь с кода на принцип. Исходя из моего понимания принципа подстановки Лискова (LSP), какие бы методы ни находились в моем базовом классе, они должны быть реализованы в моем подклассе, и, согласно этой странице, если вы переопределяете метод в базовом классе и он ничего не …

1
Избежать конфликтов версий зависимостей?
Любой проект Java, который использует мой jar, почти наверняка будет иметь дополнительную зависимость от другого jar, который мой jar также содержит в качестве зависимости. Проблема в том, что у другой банки есть несколько версий. Как я могу избежать каких-либо проблем, которые могут возникнуть, в том случае, если вероятная версия 2-й …

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