Pull to refresh
34
0.2
Alex @eaa

Пользователь

Send message
Это удобно, пока Вам не приспичит изменить код так, чтобы выполнить не одну функцию, а например две. Тогда весь кусок перекраивать придется. Во втором варианте стиль не меняется, а просто дописывается еще один вызов. Очень помогает, когда хочется быстро вставить печать отладочного сообщения (а то и по одному в каждой скобке, чтоб понять условие ветвления), а потом так же быстро его удалить.
А если Вы делаете return изнутри цикла?
Или даже из пары вложенных циклов? Тут break (который по сути тот же goto к концу цикла) уже не поможет — он сработает на один цикл (хотя вроде поминалось, что в java можно и из вложенных выходить — но тогда опять же goto к концу внешнего цикла).
Так что goto иногда все-таки удобно.
Но не спорю, лучше бы его поменьше, и такие if'ы не писать.
Не всегда, все зависит от реальных условий. Я собственно хотел показать только то, что при множетвенном ветвлении и куче return goto улучшает и читаемость, и отлаживаемость кода.
Это очень неплохо описано в замечательной книжке Алена Голуба, в русском переводе она называется «Правила программирования на С и С++» — перечитывал несколько раз, и хоть кое-что устарело, с чем-то не согласен — но вцелом это супер, каждый, кто хочет писать более-менее грамотный, читаемый и отлаживаемый код — должен ее прочитать. На просторах интернет ее можно найти например тут
Я хоть и не любитель goto, но недавно пришлось отлаживать код примерно такой:

if (a) {
...
...
return 1;
}

if (b) {
...
...
return 2;
}
...
повторить 15 раз в том же духе


Представляете как это отлаживать, сколько дебага вставить надо перед каждым return?

Не проще ли именно с точки зрения поддержки и сопровождения кода писать как минимум

if (что-то) {
result = 1;
goto Exit;
}

if (что-то еще) {
result = 2;
goto Exit;
}
...
повторить много раз
...

: Exit
write_debug("Result: " + result);
return result;


Сколько нервов съэкономит этот goto… хотя одно наличие подобного кода уже убивает.
Как-то давно читал про билайников и мтс-ников, так они пользуются услугами конкурентов: билайник пользует тарифы мтс и наоборот :)
запустить ssh, в кавычках указать запустить греп у которого в кавычках написать регексп с кавычками… и т.д. приходилось такое писать и еще специальную функцию, которая каждый раз эскейпила кавычки… вот это было весело отлаживать, до сих пор мурашки по коже.
Ставишь cygwin (и sshd) — и вперед.
Хотя если ты поставишь cygwin, то очень большая вероятность, что вместо PS будешь использовать bash ;)
Консольное окно — это когда по ssh на винду заходишь
Я никогда не буду делать /etc/init.d/iptables на удаленном сервере :)
Кстати, не стоит забывать, что сейчас вместо init.d появился Upstart и systemd — оно позволяет значительно ускорить загрузку системы. А init.d наверно скоро уйдет в /dev/null
«Источники РИА Новости отмечают, что „Гео-ИК-2“ может впоследствии быть переведен на расчетную орбиту, несмотря на отклонения при выведении на орбиту. „
Нет, ясное дело, что менять никто и не будет. Но тогда вопрос — зачем так много вариантов?
Конечно мы все хотим новое, и это интересно. Новая система, новые идеи. Прогресс.

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

А сам код в это время никто не пишет.

PS. В жизни от перехода с CVS на SVN толку почти не было, а гимора хватило — новый репозиторий, конвертация, переучивание человеков… Единственный плюс — копирование комментариев при move/merge. Но это раз в год…
не во всех языках есть NaN

например перловый undef не есть NaN в чистом виде, там undef вполне определенное значение… (ой, а может оно тоже последние биты теряет… в ядро не лазил, сорри)

а для полезности перловиков, да и не только их — используйте Big Int для денег и их копеек — оно разряды не теряет ибо их нет.
У нас есть кучка замечательных систем
CVS
SVN
GIT



А надо столько?
И это еще ладно, каждый использует свое… но их все больше и больше. Как же жить дальше? Менять систему каждый год?
А если использовать параллельно несколько репозитариев?
Ой мама, страшненько.
Как вариант — будут платить за патент, а не с копии. Или ничего :)
У Sun с ораклом было что делить — оракл же на java фактически все свои девелоперские и клиентские тулзы написал. А с микрософтом что? Они свое решение перли и прут — тут чистая конкуренция, никто никого из них не купит.
Прочитал «Китайцы создали вирус, блокирующий связь кл» и фразы на экране просто не увидел. Первое, что подумалось — «блокирующий связь клеток… организма». А потом появилась мысль — что это вирусы то в одно место влезут, то еще куда. Нет чтобы влазить во все связи между нейронами (все загрузки .dll), во все коннекты системы (http, ftp, mail). Такой супер-умный все-блокирующий вирус. Скорее даже не блокирующий, а встраивающийся во все связи — а там уже что хошь то и делай, с ftp отправляй на http, с одной dll на другую… тут простор для фантазии — хоть фракталы рисуй — вот он, искусственный интеллект :)
Лучше б Sun купил Oracle и они насобачили красивый Андроид.
Если много завязок — всегда сложно. Но тогда встает вопрос — а кто от кого зависеть будет, если Гугл перепишет код под себя, а Ораклу останется только плеваться, что используют уже не его код, с свободный Гугловый? А если так подумать, то Java писалась как раз для программирования всяких микроконтроллеров, а совсем не серверных и десктопных приложений.
Попросите РуЦентр с его рекламой букв кириллических доменов — они набили в этом руку

Information

Rating
3,777-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Specialist
Lead
From 500,000 ₽