Где различие между [выделение MyClass] и [[сам класс] выделение]?

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

, Например, несмотря на недавние продвижения в материаловедении, инженеры-строители знали в течение приблизительно 2 000 лет, как создать дугу, которая не упадет, и это - что-то, что может преподаваться и изучаться в университете с относительно небольшим противоречием. Хотя я полностью согласен с Вами о методах, что разработчики программного обеспечения должны учиться, это соглашение основано на личном опыте и неофициальном обосновании. Чтобы быть социально принятой "лучшей практикой", нам нужны количественные данные, которые могут быть очень дорогими для сбора: какому количеству помогает управление версиями? Как это помогает? Поблочное тестирование? Мы можем рассуждать об эффективности различных методов, но на самом деле доказывая, что эффективность окончательно была бы очень дорогой. Мы должны были бы выполнить полный, реалистический проект программного обеспечения с начала до конца, многочисленные времена, с группами программистов, которые имеют эквивалентные экспертные знания, с помощью различных методов. По крайней мере нам было бы нужно много данных о существующих проектах, которые те проекты будут не желать выпустить.

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

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

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

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

10
задан 15 August 2009 в 21:26
поделиться

1 ответ

Если вы создаете подкласс MyClass , то второй пример -copyWithZone: возвращает экземпляр подкласса. В первом примере нет, он возвращает экземпляр MyClass .

10
ответ дан 4 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: