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

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

9
Почему большинство «общеизвестных» императивных / OO-языков допускают неконтролируемый доступ к типам, которые могут представлять значение «ничего»?
Я читал о (не) удобстве иметь nullвместо (например) Maybe. Прочитав эту статью , я убедился, что было бы намного лучше использоватьMaybe (или что-то подобное). Однако я удивлен, увидев, что все «общеизвестные» императивные или объектно-ориентированные языки программирования по-прежнему используют null(что обеспечивает неконтролируемый доступ к типам, которые могут представлять значение «ничего»), и …

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

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

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

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

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

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

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

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

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

1
Когда следует использовать документ по сравнению с базой данных реляционных или графов? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

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

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

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

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

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