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

72
Полезно ли использовать ветки для поддержки разных версий одного и того же программного обеспечения?

У нас есть продукт, который имеет несколько разных изданий. Различия незначительны: разные строки здесь и там, очень мало дополнительной логики в одном, очень мало различий в логике в другом. Когда программное обеспечение разрабатывается, большинство изменений необходимо добавлять в каждую...

72
Есть ли корреляция между масштабом проекта и строгостью языка?

Объясняя разницу между строгостью языков и парадигм моей коллеге, я кончил тем, что: Толерантные языки, такие как динамические и интерпретируемые языки, лучше всего используются для прототипов и небольших проектов или веб-приложений среднего размера. При выборе элегантных динамических языков, таких...

72
Имеет ли смысл писать тесты для унаследованного кода, когда нет времени для полного рефакторинга?

Я обычно стараюсь следовать советам книги Эффективная работа с унаследованным Cod е . Я нарушаю зависимости, перемещаю части кода в @VisibleForTesting public staticметоды и в новые классы, чтобы сделать код (или, по крайней мере, его часть) тестируемым. И я пишу тесты, чтобы убедиться, что я ничего...

72
Как я должен помнить, что я делал и почему в проекте три месяца назад?

Я работал над проектом три месяца назад, а затем внезапно появился другой срочный проект, и меня попросили перевести мое внимание. С завтрашнего дня я вернусь к старому проекту. Я понимаю, что я не помню, что именно я делал. Я не знаю с чего начать. Как я могу задокументировать проект так, чтобы...

72
Почему первый компилятор был написан до первого интерпретатора?

Первый компилятор был написан Грейс Хоппер в 1952 году, в то время как интерпретатор Lisp был написан в 1958 году учеником Джона Маккарти Стивом Расселом. Написание компилятора кажется гораздо более сложной задачей, чем интерпретатор. Если это так, то почему первый компилятор был написан за шесть...

72
Как я могу попросить моего босса (вежливо) прокомментировать его код?

Меня обучает мой начальник (я только что закончил школу, и он хотел кого-то с небольшим опытом программирования, поэтому он выбрал меня, чтобы обучить меня тому, на чем специализируется эта компания) и начал работать с приложениями ASP.NET MVC , некоторыми HTML и CSS , Я в порядке с вещами...

72
Почему так мало C-компиляторов?

Си является одним из наиболее широко используемых языков в мире. На его долю приходится огромная доля существующего кода, и он продолжает использоваться для огромного количества нового кода. Он пользуется популярностью среди пользователей, настолько широко портирован, что возможность запуска C...

72
Как архитектуры микросервисных систем позволяют избежать узких мест в сети?

Я много читал о микросервисных архитектурах для серверных приложений и удивлялся, как использование внутренней сети не является узким местом или существенным недостатком по сравнению с монолитной архитектурой. Ради точности, вот мои интерпретации двух терминов: Монолитная архитектура: одно...

72
Какой код статуса HTTP нужно вернуть, если несколько действий заканчиваются разными состояниями?

Я создаю API, где пользователь может попросить сервер выполнить несколько действий в одном HTTP-запросе. Результат возвращается в виде массива JSON с одной записью на действие. Каждое из этих действий может быть неудачным или успешным независимо друг от друга. Например, первое действие может быть...

72
Насколько плоха идея использовать файлы Python в качестве файлов конфигурации?

Я всегда использовал файлы JSON для настройки своих приложений. Я начал использовать их с того времени, когда много программировал на Java, и сейчас я работаю в основном над разработкой Python на стороне сервера и наукой о данных и не уверен, что JSON - это правильный путь. Я видел, как Celery...

71
Какой самый эффективный способ проверки кода? [закрыто]

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

71
Я прекратил писать ради забавы, это плохой знак? [закрыто]

В какой-то момент я просто перестал программировать ради забавы. Раньше я ходил на работу, выполнял свои задания, а затем, когда приехал домой, я пошёл и написал что-нибудь для развлечения. Однако сейчас я просто иду домой и пытаюсь избежать компьютера. Я предпочитаю читать газету, смотреть...

71
Почему я должен заботиться о микропроизводительности и эффективности?

Многие вопросы и ответы на страницах C / C ++, конкретно или косвенно обсуждают проблемы микро производительности (такие как издержки косвенной или прямой против встроенной функции), или использование алгоритма O (N 2 ) против O (N log N) на список из 100 предметов. Я всегда пишу код, не заботясь о...

71
Хорошие, простые причины наличия нескольких сред

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

71
Обзор до или после принятия кода, что лучше?

Традиционно мы выполняли проверку кода перед фиксацией, сегодня я поспорил со своим коллегой, который предпочел проверку кода после фиксации. Во-первых, вот немного предыстории, У нас есть опытные разработчики, и у нас также есть новые сотрудники с практически нулевым опытом программирования. Мы...

71
Что должно и что не должно быть в заголовочном файле? [закрыто]

Какие вещи абсолютно никогда не должны быть включены в заголовочный файл? Например, если я работаю с задокументированным форматом промышленного стандарта, который имеет много констант, будет ли хорошей практикой определять их в заголовочном файле (если я пишу парсер для этого формата)? Какие...

71
Как я могу взять на себя ответственность за мой код, когда коллега делает ненужные улучшения без уведомления?

Один из моих товарищей по команде является мастером на все руки в нашем IT-магазине, и я уважаю его понимание. Однако иногда он просматривает мой код (он занимает второе место в команде лидера нашей команды, так что это ожидаемо) без единого мнения. Поэтому иногда он просматривает мои изменения,...

71
Возможно ли достичь абсолютного нулевого состояния ошибки для крупномасштабного программного обеспечения?

Я говорю о 20-30+ миллионах строк кода, программного обеспечения в масштабе и сложности Autodesk Maya, например. Если вы заморозите разработку до тех пор, пока это необходимо, сможете ли вы на самом деле исправить все ошибки до тех пор, пока просто не будет ни одной ошибки, если такая вещь может...

71
Почему бы вам не использовать директиву using в C #?

Существующие стандарты кодирования в большом проекте C # включают правило, согласно которому все имена типов должны быть полностью квалифицированными, что запрещает использование директивы using. Итак, а не знакомые using System.Collections.Generic; .... other stuff .... List<string> myList =...

71
Почему по умолчанию git pull выполняет слияние вместо ребазирования?

Рассмотрим следующую ситуацию: У вас есть клон Git-репозитория У вас есть локальные коммиты (коммиты, которые еще нигде не были переданы) Удаленный репозиторий имеет новые коммиты, которые вы еще не согласовали Так что-то вроде этого: Если вы выполните git pullс настройками по умолчанию, вы...