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

29
Когда следует использовать документ по сравнению с базой данных реляционных или графов? [закрыто]

В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и,...

29
Должны ли мы всегда проверять ошибки модуля при их исправлении?

При исправлении ошибок рекомендуется, когда я работаю, сначала написать тест, который не удается выполнить с данной ошибкой, а затем исправить код, пока тест не пройдет. Это следует из практики TDD и должно быть хорошей практикой, но я заметил, что она имеет тенденцию создавать загадочные тесты,...

29
На каком языке я должен назвать свои бизнес-классы?

Я запрашиваю лучшую практику с этим вопросом. Это проблема только в том случае, если компания-заказчик строго национальная, и родной язык, кроме английского, мне кажется. Если у клиента много выражений, в основном очень специфичных для домена (скажем, на немецком языке), смешанных с некоторыми...

29
Разные способы увидеть монаду

Во время изучения Haskell я столкнулся с множеством учебных пособий, в которых пытался объяснить, что такое монады и почему они важны в Haskell. Каждый из них использовал аналогии, чтобы было легче понять смысл. В конце концов, я получил 3 разных взгляда на то, что такое монада: Вид 1: Монада как...

29
Объявление интерфейса в том же файле, что и базовый класс, это хорошая практика?

Чтобы быть взаимозаменяемыми и тестируемыми, обычно сервисы с логикой должны иметь интерфейс, например public class FooService: IFooService { ... } Что касается дизайна, я согласен с этим, но одна вещь, которая беспокоит меня при таком подходе, заключается в том, что для одного сервиса вам нужно...

29
Schema.org против микроформатов

Они оба служат одной и той же цели: предоставление словарного запаса для семантической разметки. Схема признана и стандартизирована ... но стандарт микроформатов основан на процессе открытого сообщества. Схема использует микроданные в документации, а микроформаты идут на занятия. (Следует отметить,...

29
Должен ли я извлечь определенные функции в функцию и почему?

У меня есть большой метод, который выполняет 3 задачи, каждая из которых может быть извлечена в отдельную функцию. Если я сделаю дополнительные функции для каждой из этих задач, улучшит или ухудшит мой код и почему? Очевидно, что в основной функции будет меньше строк кода, но будут дополнительные...

29
Как остановить позолоту и просто довольствоваться выпуском работ [закрыто]

Трудно сказать, что здесь спрашивают. Этот вопрос является двусмысленным, расплывчатым, неполным, чрезмерно широким или риторическим, и на него нельзя дать разумный ответ в его нынешней форме. Чтобы получить разъяснения по этому вопросу, чтобы его можно было снова открыть, посетите справочный...

29
В чем разница между «сокрытием данных» и «инкапсуляцией»?

Я читаю «Параллелизм Java на практике», и там говорится: «К счастью, те же объектно-ориентированные методы, которые помогают вам писать хорошо организованные, поддерживаемые классы, такие как инкапсуляция и скрытие данных, могут также помочь вам создать поточно-ориентированный классы «. Проблема №...

29
Чистый Java веб-браузер, это практично? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Я знаю, что веб-браузер Java возможен, но практичен ли он? Я видел проект Lobo...

29
Почему Java использует UTF-16 для внутреннего представления строк?

Я бы предположил, что причина была быстрой: массив похож на доступ к символу по индексу, но некоторые символы не помещаются в 16 бит, поэтому он не будет работать ... Так что если вам все равно приходится работать с особыми случаями, почему бы просто не использовать...

29
Почему класс должен быть чем-то отличным от «абстрактного» или «окончательного / запечатанного»?

После более 10 лет программирования на Java / C # я создаю либо: абстрактные классы : контракт не предназначен для создания как есть. заключительные / закрытые классы : реализация не предназначена для использования в качестве базового класса для чего-то другого. Я не могу представить себе ситуацию,...

29
Когда стандартом для упаковки исходного кода Linux стал .tar.gz?

При просмотре проектов с открытым исходным кодом, которые в основном разработаны для систем Linux, и загрузке последних пакетов, исходный код всегда сохраняется в файле .tar.gz или .tar.bz2. Есть ли какая-либо причина использовать .tar.gz или .tar.bz2, а не что-то вроде .zip или .rar или какой-либо...

29
Должны ли ваши лучшие программисты проверять чужой код в системе контроля версий?

Одно из различий между svn и git - это возможность контролировать доступ к хранилищу. Сложно сравнивать эти два, потому что есть разница во взглядах на то, кому вообще разрешено вносить изменения! Этот вопрос касается использования git в качестве централизованного хранилища для команды где-то в...

29
Как написать «СМАРТ» Цели как проворный разработчик?

Как и многие корпорации, компания, в которой я работаю, переходит на систему оценки эффективности, основанную на целях SMART . Моя команда - это высокопроизводительная команда гибких разработчиков, использующая практики экстремального программирования . К нашему огромному преимуществу наша практика...

29
Каков этикет переименования форка с открытым исходным кодом?

Я хочу раскошелиться на Github среду тестирования Java TestNG (лицензия Apache 2), чтобы я мог добавлять / изменять некоторые мелочи в соответствии со своими потребностями. Маловероятно, что все мои изменения будут одобрены в основном проекте или что другие люди будут использовать мой форк. Это...

29
Как реализовать очередь сообщений через Redis?

Почему Redis для очередей? У меня сложилось впечатление, что Redis может стать хорошим кандидатом для внедрения системы массового обслуживания. До этого момента мы использовали нашу базу данных MySQL с опросом или RabbitMQ. С RabbitMQ у нас было много проблем - клиентские библиотеки очень плохие и...

29
Почему Java / C # не может реализовать RAII?

Вопрос: Почему Java / C # не может реализовать RAII? Пояснение: я знаю, что сборщик мусора не является детерминированным. Таким образом, при использовании текущих возможностей языка метод Dispose () объекта не может быть вызван автоматически при выходе из области видимости. Но можно ли добавить...

29
Инглиш парсер (для Хоббита 1982)

С увлечением прочитал о текстовой приключенческой игре The Hobbit, в которой был представлен невероятно мощный парсер под названием «Inglish»: ... Инглиш позволял набирать сложные предложения, такие как "спроси Гэндальфа о любопытной карте, затем возьми меч и убей тролля с ним". Парсер был сложным...

29
Какие из этих старых критических замечаний о распространенном шуте все еще применяются сегодня?

В «Критике общего лиспа», написанной Родни А. Бруксом и Ричардом П. Габриэлем из Стэнфорда в 1984 году, обсуждаются некоторые конструктивные решения, оставленные комитетом по нормализации общего лиспа. Хотя большая часть обсуждения остается в силе, есть два утверждения, которые относятся к...