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

88
Наем программиста гораздо более квалифицированного и опытного, чем вы сами? [закрыто]

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

88
Что такое лондонская и чикагская школы TDD?

Я слышал о лондонском и чикагском стилях (иногда их называют стилем Детройта) в Test Driven Development (TDD). Семинар группы пользователей Utah Extreme Programming: TDD в стиле взаимодействия также называют mockist-style или London-style после лондонского клуба Extreme Tuesday, где он стал...

88
Лучше использовать assert или IllegalArgumentException для обязательных параметров метода?

В Java, что более рекомендуется и почему? Оба типа будут генерировать исключения, поэтому обработка их одинакова. assertнемного короче, но я не уверен, насколько это важно. public void doStuff(Object obj) { assert obj != null; ... } против public void doStuff(Object obj) { if (obj == null) { throw...

88
Проверьте сначала против обработки исключений?

Я работаю над книгой «Head First Python» (это мой язык для изучения в этом году), и я попал в раздел, где они спорят о двух методах кода: Проверка First против Exception обработка. Вот пример кода Python: # Checking First for eachLine in open("../../data/sketch.txt"): if eachLine.find(":") != -1:...

88
Является ли навязывание одинакового формата кода всем разработчикам хорошей идеей?

Мы рассматриваем возможность введения в нашем проекте единого стандартного формата кода (автоформат с сохранением действий в Eclipse). Причина в том, что в настоящее время существует большая разница в форматах кода, используемых несколькими (> 10) разработчиками, что затрудняет работу одного...

88
Почему аппаратно-ускоренная векторная графика не снимается?

Я работаю над приложением, которое включает в себя манипулирование векторными путями в режиме реального времени со скоростью 60 кадров в секунду, и я очень удивлен тем, как мало информации по этому вопросу. Сначала я пытался реализовать свою идею с помощью CoreGraphics, но она не соответствовала...

88
Над развитием мышления

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

88
Разбить случай по умолчанию в коммутаторе

Я немного озадачен тем, когда включаю или не включаю breakпосле последнего случая, часто default. switch (type) { case 'product': // Do behavior break; default: // Do default behavior break; // Is it considered to be needed? } breakв моем понимании единственная цель - остановить выполнение кода...

88
Почему база данных Web SQL устарела?

Я делаю гибридное приложение для Android. Сначала я решил использовать localStorage, потратив 2 дня, я понял, что это очень странно, и поэтому бросил его. Затем я поднял indexedDB, потратив весь сегодняшний день и фактически получив вывод в Google Chrome, он не работает внутри WebView приложения...

88
Оценка короткого замыкания, это плохая практика?

Что-то, что я знал некоторое время, но никогда не рассматривал, это то, что в большинстве языков можно отдавать приоритет операторам в операторе if на основе их порядка. Я часто использую это как способ предотвращения исключений нулевой ссылки, например: if (smartphone != null &&...

88
Почему% s лучше чем + для конкатенации?

Я понимаю, что мы должны использовать %sдля объединения строк, а не +в Python. Я мог сделать любое из: hello = "hello" world = "world" print hello + " " + world print "%s %s" % (hello, world) print "{} {}".format(hello, world) print ' '.join([hello, world]) Но почему я должен использовать что-то...

88
Влияет ли неизменность производительности в JavaScript?

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

88
Почему некоторые программы на C написаны в одном огромном исходном файле?

Например, инструмент SysInternals "FileMon" из прошлого имеет драйвер режима ядра, исходный код которого полностью находится в одном файле из 4000 строк. То же самое для первой когда-либо написанной программы ping (~ 2000...

87
Почему main () должно быть коротким?

Я занимаюсь программированием более 9 лет, и по совету моего первого учителя программирования я всегда держу свою main()функцию чрезвычайно короткой. Сначала я понятия не имел, почему. Я просто повиновался, не понимая, к радости моих профессоров. Получив опыт, я понял, что если я правильно...

87
MIT против BSD против двойной лицензии

Мое понимание таково: MIT- лицензированные проекты можно использовать / распространять в BSD- лицензированных проектах. Проекты, лицензированные BSD, могут использоваться / распространяться в проектах, лицензированных MIT. Лицензии MIT и BSD с 2 пунктами по существу идентичны . BSD 3-клоз = BSD...

87
Может ли моя компания отдать права ИС на приложение, которое я часами списал для другого стартапа? [закрыто]

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

87
Что такое «мягкое кодирование»?

В этой статье Алекса Пападимулиса вы можете увидеть этот фрагмент: private void attachSupplementalDocuments() { if (stateCode == "AZ" || stateCode == "TX") { //SR008-04X/I are always required in these states attachDocument("SR008-04X"); attachDocument("SR008-04XI"); } if (ledgerAmnt >= 500000) {...

87
Где грань между логикой приложения модульного тестирования и ненадежными языковыми конструкциями?

Рассмотрим функцию, подобную этой: function savePeople(dataStore, people) { people.forEach(person => dataStore.savePerson(person)); } Это может быть использовано так: myDataStore = new Store('some connection string', 'password'); myPeople = ['Joe', 'Maggie', 'John']; savePeople(myDataStore,...