Моя фантазия подсказала мне пару интересных образов, но я не могу их формализовать — не хватает понятийного аппарата в языке. Проклятая проблема квалиа.
Я, кстати, окажусь непопулярным и соглашусь с автором.
Потому что в любом языке есть совершенно ублюдочные вещи.
Моим первым профессиональным языком был C#. Я всегда поражался тому, что конструкция ((Foo)null).Bar() выкидывает NullReferenceException даже в том случае, если Bar невиртуален и не обращается к методам-членам, в то время как аналогичная конструкция для Extension-метода исключения не выбрасывает. Умом я это понимаю, но какая-то внутренняя часть меня каждый раз бунтует.
Потом был C++, лишенный данного недостатка, однако обладающий массой своих bullshit-вещей, которые яростно защищают на форумах интернет-воены низкоуровневой разработки.
Затем в моей жизни появился Objective-C со встроенным паттерном null object, который каждый раз портил мне массу крови — программа работает, но выдает совершенный мусор из-за того, что где-то вместо массива был передан nil, от которого был запрошен length, из которого получился 0 — валидное значение, чем плох массив с 0 элементом, а дальше…
Это совершенно не значит, что надо «учить стандарт». Стандарт языка С++ содержит сколько страниц? Я за все время учебы в институте столько страниц не выучил.
Язык должен быть интуитивно понятен. Вы берете молоток и сразу видите, куда и как бить — вам не надо читать 300-страничную инструкцию к нему. Конечно, с усложнением инструмента усложняются и правила его эксплуатации, но это совершенно не означает того, что нужно кнопку «стоп» красить в нежно-бирюзовый, а разрыв цепи замыкать под углом в 37,5°.
Формулировка «разумный промежуток времени» не имеет смысла, потому что нет критерия «разумности». Вы не сможете доказать, что сутки выкапывания квадратика — это неразумно.
На самом деле, f2p играми могут называться только те игры, где игрок, вкладывающий реальные деньги в игровой процесс не получает никакого преимущества перед игроком, который денег не вкладывает, или это преимущество можно нивелировать игровыми средствами. Все остальное — это pay2win.
Звездочка не используется как знак умножения в математике. Или точка посередине, или косой крест (в US варианте). Как способ ввода — да, но не как способ вывода.
Насколько мне известна, теория стационарной вселенной не была альтернативой теории Большого взрыва — все было с точностью до наоборот. Уже потом, удостоверившись в том, что стационарная вселенная никак не ложится в известные факты, он избавился от нее.
Все это формализуется в ТЗ людьми, независящими от разработки, и задача программистов это реализовать, а тестировщиков — проверить. По крайней мере мне совершенно не понятно, что должны проверять тестировщики, если у них нет никаких формальных критериев качества программы.
QA Manager не может быть начальником программистов — у программистов есть свой начальник.
Тестировщики собирают баги и пересылают их на начальника программистов (team lead). Над всем этим стоит project manager, который вмешивается в случае, если ситуация заходит не туда. Таким образом, все работают через своего начальника, не нарушаются горизонтальные связи и нет конфликтов.
С учетом того, что язык выбирается исходя из задачи, а не из личных предпочтений, это довольно актуально.
Потому что в любом языке есть совершенно ублюдочные вещи.
Моим первым профессиональным языком был C#. Я всегда поражался тому, что конструкция ((Foo)null).Bar() выкидывает NullReferenceException даже в том случае, если Bar невиртуален и не обращается к методам-членам, в то время как аналогичная конструкция для Extension-метода исключения не выбрасывает. Умом я это понимаю, но какая-то внутренняя часть меня каждый раз бунтует.
Потом был C++, лишенный данного недостатка, однако обладающий массой своих bullshit-вещей, которые яростно защищают на форумах интернет-воены низкоуровневой разработки.
Затем в моей жизни появился Objective-C со встроенным паттерном null object, который каждый раз портил мне массу крови — программа работает, но выдает совершенный мусор из-за того, что где-то вместо массива был передан nil, от которого был запрошен length, из которого получился 0 — валидное значение, чем плох массив с 0 элементом, а дальше…
Это совершенно не значит, что надо «учить стандарт». Стандарт языка С++ содержит сколько страниц? Я за все время учебы в институте столько страниц не выучил.
Язык должен быть интуитивно понятен. Вы берете молоток и сразу видите, куда и как бить — вам не надо читать 300-страничную инструкцию к нему. Конечно, с усложнением инструмента усложняются и правила его эксплуатации, но это совершенно не означает того, что нужно кнопку «стоп» красить в нежно-бирюзовый, а разрыв цепи замыкать под углом в 37,5°.
Фрактал — самоподобная структура. Самоподобная структура отсоса? Это как, отсасывает сама у себя что ли?
Звездочка не используется как знак умножения в математике. Или точка посередине, или косой крест (в US варианте). Как способ ввода — да, но не как способ вывода.
Тестировщики собирают баги и пересылают их на начальника программистов (team lead). Над всем этим стоит project manager, который вмешивается в случае, если ситуация заходит не туда. Таким образом, все работают через своего начальника, не нарушаются горизонтальные связи и нет конфликтов.