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

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

6
Как вы должны TDD игра Yahtzee?
Допустим, вы пишете в стиле ЯХДЗИ в стиле TDD. Вы хотите проверить часть кода, которая определяет, является ли набор из пяти бросков кубика фулл-хаусом. Насколько я знаю, при выполнении TDD вы следуете следующим принципам: Сначала напишите тесты Напишите простейшую вещь, которая работает Уточнение и рефакторинг Таким образом, первоначальный тест может …
36 unit-testing  tdd 

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

4
Какие ограничения накладывает JVM на оптимизацию хвостового вызова
Clojure не выполняет оптимизацию хвостового вызова самостоятельно: если у вас есть хвостовая рекурсивная функция и вы хотите оптимизировать ее, вы должны использовать специальную форму recur. Точно так же, если у вас есть две взаимно рекурсивные функции, вы можете оптимизировать их только с помощью trampoline. Компилятор Scala может выполнять TCO для …
36 scala  clojure  jvm  tail-call 

4
Этикет при задании вопросов в IRC канале [закрыто]
Многие крупные проекты OSS поддерживают IRC-каналы для обсуждения их использования или развития. Когда я зацикливаюсь на использовании проекта, пытаясь найти информацию в Интернете, но мне не удается найти ее, один из способов выяснить, что мне нужно сделать, - это зайти на канал IRC и спросить. Но мои вопросы неизменно полностью …

7
Существуют ли устаревшие методы многопоточного и многопроцессорного программирования, которые я больше не должен использовать?
В первые дни FORTRAN и BASIC, по существу, все программы были написаны с заявлениями GOTO. Результатом стал код спагетти, а решение - структурированное программирование. Точно так же указателям может быть сложно контролировать характеристики в наших программах. C ++ начинался с множества указателей, но использование ссылок рекомендуется. Такие библиотеки, как STL, …

2
Почему комитет Haskell выбрал монады для представления ввода / вывода?
Чистый язык использует уникальность типов для обработки ввода / вывода в чисто функциональном назначении. Почему комитет Хаскелла пошел с монадами вместо этого? Были ли другие предложения по обращению с государством, которые комитет расследовал, но отклонил? Примечание : я не ищу священную войну между монадами и другими формами вычислений. Давайте оставим …

9
Программисты плохие тестеры?
Я знаю, что это звучит очень похоже на другие вопросы, которые уже задавались, но на самом деле это немного отличается. Кажется, в целом считается, что программисты не способны выполнять роль тестирования приложения. Например: Джоэл о программном обеспечении - пять основных (неправильных) причин, по которым у вас нет тестеров (выделено мое) …
36 testing  qa 

2
Как правильно сделать ОТДЫХ?
В настоящее время все делают SOA , даже если некоторые на самом деле не понимают, что это такое. Поэтому они делают это неправильно. Используя это в качестве аналогии, я знаю, что такое REST (или, по крайней мере, я так думаю), и хочу сделать кое-что из этого. Но я хочу сделать …

7
Почему так много языков передается по значению?
Даже в тех языках, где у вас есть явные манипуляции с указателями, такие как C, они всегда передаются по значению (вы можете передавать их по ссылке, но это не поведение по умолчанию). Какова польза от этого, почему так много языков передаются значениями и почему другие передаются по ссылке ? (Я …

3
Я выпустил программный продукт - как мне максимизировать воздействие, не имея бюджета и ограниченного времени?
Я хотел бы обратиться к сообществу по этому вопросу. Как разработчик программного обеспечения, я не эксперт по продажам или маркетинговый гуру - я думаю, в коде и не намного больше. Большинство разработчиков, с которыми я сталкиваюсь, похожи на это и также имеют тенденцию быть серьезными мелочами. Допустим, как разработчик, я …
36 marketing 

8
ООП становится легче или сложнее? [закрыто]
Когда концепции объектно-ориентированного программирования были представлены программистам много лет назад, это выглядело интересно, и программирование было чище. ООП было так Stock stock = new Stock(); stock.addItem(item); stock.removeItem(item); Это было легче понять с помощью информативного имени. Но теперь ООП с такими шаблонами, как объекты передачи данных, объекты значений, репозиторий, внедрение зависимостей …

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

10
Это признаки плохого разработчика? [закрыто]
Раньше я обвинял меняющихся спецификаций клиентов в гниении кода, не понимая, что бизнес-модели меняются, и моя работа заключается в разработке адаптируемым способом. Теперь я вижу это как признак плохого разработчика (я изменился!). Но теперь я вижу в себе другие «порывы». Недавно я обнаружил, что говорю «это все равно что пытаться …

12
Действительно ли разработка, основанная на тестировании (TDD), принесла пользу проекту в реальном мире?
Я не новичок в кодировании. Я кодирую (серьезно) уже более 15 лет. У меня всегда было некоторое тестирование для моего кода. Однако за последние несколько месяцев я изучал проектирование / разработку на основе тестов (TDD) с использованием Ruby on Rails . Пока что я не вижу выгоды. Я вижу некоторую …

15
Должен ли я продолжать заниматься программированием самостоятельно или научиться профессионально заниматься кодированием? [закрыто]
В последнее время я получаю профессиональную работу, общаюсь с другими программистами и заводлю друзей в индустрии. Единственное, я на 100% самоучка. Это заставило мой стиль чрезвычайно отклоняться от стиля тех, кто должным образом обучен. Это методы и организация моего кода, которые отличаются. Это смесь нескольких вещей, которые я делаю. Я …

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