All streams
Search
Write a publication
Pull to refresh
71
0
Антон Кортунов @ToSHiC

Программист

Send message
Из комментариев можно сделать очень простой вывод, как получить 0% ошибок в коде: надо просто не писать его!
Для гениев. Да и человек с опытом прекрасно знает, что на самом деле в except в реальной ситуации помещают реальные программитсы.

И что же помещают в except реальные программисты? Просветите, пожалуйста!

А вот за это уже надо сразу давать по башке канделябром. Если в задании сказано, что нужно прочитать файл, любое творчество программиста надо пресекать на корню. Потому что не его ума дело, гадать почему его там нет.

В задании сказано «Записать файл пользователя, когда он попросит. Отдать файл пользователю, когда он попросит». Что, куда писать, как обрабатывать ошибки — это забота программиста. Вы как считаете, fsck тоже нельзя запускать, потому что оно само ошибки файловой системы при старте лечит, да? Что уж говорить про распределённые системы, каждая часть из которых по-определению ненадёжна.

Для «программиста на С/С++» — да. Для профессионала — нет.

О, раз вы профессионал, видимо, то посоветуйте, как лучше быть: в каждую функцию вместе с указателем на структуру передавать её sizeof и её «сигнатуру», или можно ограничиться только некоторыми? Или структуры нельзя в функции передавать? А сколько процентов производительности это съест?

Если не совать в библиотеку то, что туда не влазит, можно не только сохранить нервы, но и не делать фигню.

О, неплохой совет. У меня тут пользователь картинку прислал, и написал, что там jpeg. Я в вашу библиотечку запихнул его, а в файлике на самом то деле gif оказался. Библиотечка такого подвоха не ожидала, кинула assert, программа умерла, пользователь получит сообщение: «Извините, сервис временно недоступен. Попробуйте ещё раз.». А вы могли бы и exception кинуть, я бы тогда пользователю человеческим языком написал, что мол плохой формат картинки. Или попробовал картинку уже как gif обработать — пользователь то знать не желает, что у него там внутри, он картинку залить хочет.

Или вот, вчера было: приходит кука, я её значение разбираю при помощи boost::tokenizer. Если совершенно случайно значение куки оказывается пустым — токенайзер мне ассерт кидает, сервис падает. Конечно, я потом проверку добавил, но мне, как разработчику, такая библиотека не нравится.

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

А в сертифицированном софте сертифицированная библиотека надёжной не считается? Надёжная != не кидает ошибок. Если я запихнул что-то плохое — библиотека должна мне об этом сказать. Надёжная — это значит, что она соответствует всем формальным требованиям и работает именно так, как написано в спецификации на неё. Или предлагаете обкладывать добавление элемента в список проверками? А как проверки написать без использования этого же самого списка, самопальный писать?

Вообще, вопрос сертификации софта — это отдельная большая проблема, и она слабо пересекается с темами, которые вы затронули в своём посте.
В сертифицированной системе память не кончается? Или в инструкции будет написано, что можно запускать не более 1 процесса, и процесс не может потреблять более 10% ОЗУ?
Во-первых, в статье нету никаких выводов. Совсем. Я бы даже сказал, что есть только введение:) Да ещё и название статьи раскрывается ещё до ката, под катом же набор каких-то фактов и мыслей, слабо связанных с введением. Все знают, что все делают ошибки. Все (ну ладно, кроме заносчивых новичков) понимают, что каждый пишет код с ошибками.

Далее, по пунктам:
1. Если есть сбои в логике — останов программы. Зачем же тогда придумали try..except конструкции, если не для попыток починить возникшую проблему? Если не удалось прочитать файл — это не значит, что надо сразу ошибку валить. Можно сначала попробовать прочитать файл из копии, и восстановить его в изначальное место. Если не удалось обслужить одного клиента — ладно, отправим ему ошибку. Но зачастую это никак не мешает обрабатывать следующих клиентов в этой же программе. Более того, зачастую сбои в логике нельзя отследить автоматически в процессе работы программы. Если вы где-то проехались по стеку — вы этого нифига не заметите, просто через некоторое время ваша программа упадёт в корку, в самом неожиданном месте.

2. Прогнозирование ошибок. Дебаг сообщения в лог — это, безусловно, полезно и позволяет легче находить проблему. Да, их часто добавляют в момент написания кода. Эдакая мысль от КО :) Но даже идеальные программисты не всегда могут представить, как именно могут попортиться данные. Программисты на С/С++ меня поймут, как сложно отловить проблему, если по какой-то причине размеры структуры в разных частях программы перестанут совпадать. И это крайне сложно спрогнозировать. Очень странно читать про то, что ни один язык и ни один тул внезапно не поддерживают дебаг по брекпоинтам.

3. Ассерты. Ассерты — это, конечно, хорошо. Но вот ассерты в библиотеке вместо эксепшена — это очень, очень плохо. За это вас будут ненавидеть. Про сообщения в ассертах — ещё один совет от КО, видимо :)

4. Проверка ошибок. Простите, но ошибки не проверяют только плохие программисты. Именно поэтому код на С изобилует goto, а в коде на C++ основной цикл начинается с try {. Нельзя вызвать malloc и не проверить потом то, что он вернул. Это — нормальные стандарты индустрии, чуть ли не code style guide. В C++ именно для этого используется RAII + механизм исключений. Уж не знаю, стандарты какой именно индустрии вы имели в виду.

Отдельно стоит уточнить, что априори считается, что базовые библиотеки типа STL работают без ошибок, иначе весь код состоял бы из мешанины проверок и никогда не завершил бы свою работу.
По душе мне когда зимой снег, а летом солнце и тепло :)

А профит от большого города в любом районе — круглосуточная жизнь, и ритм жизни высокий. В любое время суток можно найти кафе или ресторан, почти в любое время суток сходить в кино. Банальные круглосуточные магазины в ассортименте. Опять же, куча всяких разных мероприятий проводится постоянно. И в любое место можно добраться без машины, причём быстро. А в спальном районе, как это ни странно, спишь :) Вы в штаты откуда переехали, если не секрет?

Да, есть люди, которые тяготеют к более деревенской жизни, и им в городе менее комфортно, но я не из их числа. Мой непосредственный руководитель вырос и учился в школе в Белгороде, в институт поступил в Москве и так и остался. Говорит, когда приезжает в Белгород — там все как сонные мухи. Не готов, в общем, уезжать :)
А вы с ГИБДД сталкивались? Я вот неоднократно, в том числе в суд ходил. Надо просто знать ПДД и КоАП, тогда все разводы резко прекращаются, причём в зародыше.
А зря не рассматриваете:) Вопрос то ведь в транспортной доступности. Практически из любой точки Москвы в любую можно попасть меньше, чем за 1.5 часа на общественном транспорте. Из городов-спутником до работы добираться иногда быстрее, чем из районов внутри мкада. В пределах ТТК тоже не совсем правильно смотреть — там практически нету новостроек и жить, как это ни странно, менее удобно, чем в спальных районах: больших магазины дальше, проблемы с парковкой, меньше школ и поликлиник. Да и вообще жилых помещений мало.

Так что хороший спальный район — это хороший выбор для покупки первой квартиры. Ну и в московских реалиях можно начать с однушки, всё таки, обойдётся она миллионов в 6-7 внутри мкада, в хорошем спальном районе. Вот и получается — в 4 раза дешевле, чем в Долине. Зарплата ниже процентов на 20-30, тут много факторов влияет. Конечно, это не большой дом, но это плата за жизнь в городе.

За примерно миллион долларов я недавно видел квартиру в новом пафосном доме на ленинградке (между мкадом и ттк): 190-200 метров, подземная парковка, набережная с причалом, фитнес-центр во дворе. Получается, на те самые 20-30 процентов менее доступно, чем в Долине, из-за зарплаты :) Но имхо сильно лучше, чем дом такой же площади, пусть даже и с бассейном.

Ну и ещё один фактор, вы уж не обижайтесь, но Пало-Альто, Маунтин-Вью — это большие такие деревни, а не город. С этой точки зрения Москву разумно сравнивать с Нью-Йорком, и чуть ниже в комментариях уже написали про эту особенность и отличие от Питера. Кстати, я был в сентябре в Сан-Франциско, одно из лучших мест в штатах на мой вкус. Уже как минимум за вкусную еду :) Но было как-то не жарко, да ещё и оказалось, что мы были в самый тёплый период при этом. Континентальный климат, хотя бы на уровне московского, мне больше по душе.
О, вы сейчас назвали вещь, которую замечают многие, приехавшие в Москву учиться в вузе и оставшиеся. Те, кто обладают схожим с вашим мнением, именно этим мотивируют своё нежелание возвращаться в родной город, даже если это миллионник.
Окто, уж ты то мог бы ножками дойти до нас с Евгением и рассказать :)
Ну вот и получится, что до получения грин-карты (от 2 до 5 лет, если очередь не объединят, правильно?) выигрыша по деньгам нет, потом — денег в штатах будет немного больше в расчёте на двоих. Если жена работает — то каждый ведь по 35% процентов налогов будет платить?

Это я к тому, что ехать за деньгами из Москвы в Калифорнию смысла нет. В то, что для их заработка придётся прилагать меньше усилий — тоже слабо верится.
Так я не знаю, чего вы негатив ищете, я то переезжать никуда не собираюсь :) Если вы про фразу парой коментов выше " И далеко не факт, что будет хуже, чем в России сейчас." — то это опечатка, на самом деле конечно же имел в вижу " И далеко не факт, что будет лучше, чем в России сейчас."
115 вам в Калифорнии предлагают? Тогда почему вы налог 25% считаете? Посчитайте 35%. И покупку машины. А если 25% потому что с супругой — то добавьте 60к рублей зарплаты супруги в Мск.

Учёба для супруги — это клёво, напишите ещё, сколько стоит магистратура.
А что медицина? Маме ставили пластину на сломанное запястье, сделали хорошо, платили только за саму пластину + крепёж (по ДМС кстати так же получается). Очереди есть, да, но даже если у меня не будет ДМС — я могу пойти в больницу и меня будут лечить. В отличие от некоторых других стран, где без страховки просто не примут.

Образование я получал в те же самые года, что и вы, если верить вашему профилю. Да, я учился на подготовительных, но что это меняет? Они стоили совсем недорого, и знания действительно давали. Это не была плата за поступление. За 2 года до этого я дополнительно учился ещё и в бесплатной заочной школе при МГУ, уж это точно по силу всем — за свои деньги надо было покупать тетрадку и конверт.

Во всём мире недвижимость покупают по ипотеке, от этого никуда не деться. Если вам при сокращении не дали 3 зарплаты — значит, фиговая была контора, или вы там получали не всё белыми. Москвичи тоже покупают квартиры, не всю же жизнь с родителями жить в одной квартире.

Про гаишников и сумму за смену — из раздела ОБС. Поменьше ТВ смотрите :)
Можно сидеть на попе ровно и ждать манны небесной, но практика показывает, что шансы очень малы. А ещё практика показывает, что те, кто действительно хочет купить машину, квартиру, или просто путешествовать в разные страны, и кто прилагает для этого усилия, добиваются своего. Неужели у вас нет реализуемой мечты? А если есть — делаете ли вы что нибудь, чтобы её реализовать?

Купить квартиру тяжело, надо будет несколько лет всаживать всю зарплату, но зато какой результат! Можно ли это назвать рваной жопой? Да. Хорошо ли жить в своей квартире? Да. Хорошо ли жить в сьёмной квартире? Мне кажется, не очень.
После захода солнца на улицу не боюсь выходить, проблем от ментов никогда не получал, да и от гопников тоже. Те услуги, что мне были нужны, от государства получал без каких-либо особых проблем: загран делали ровно месяц, на подачу документов потратил 5 минут и 20 минут в очереди. Машину в ГИБДД на учёт ставить — да, очереди есть, но в последний раз за 3 часа управились.

Про работников гос. службы вы, мягко говоря, совсем не правы. Детей у меня нету, так что про детские садики ничего не знаю. Но правда у меня к вам встречный вопрос: а в каких ещё странах есть бесплатные детские садики?

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

Несколько моих знакомых купили себе жильё, причём самые обычные люди, работают на обычной работе и денег им никто не дарил. Да, сейчас у них ипотека, но это нормально. Или вы считаете это недоступным жильём?

Пункт про воруют мне особенно нравится. Каждый день сотни пидарасов на дороге воруют моё время. Они поворачивают со второго ряда (рекорд — с китайгорода на набережную выстроились в 7 рядов, хотя там официально 3 ряда для поворота), щемятся на обочину, едут в 4 ряда там, где их размечено всего три, едут по автобусной полосе а потом щемятся на правый ряд перед радарами… список продолжать?

Отдельная категория — взяточничество. Один раз наблюдал замечательную картину: 37 километр новорязанского шоссе, где установлены радары-камеры на ферме. Выходной день, загородное шоссе, прямое, как стрела, машин не особо много, новый асфальт, многие едут 13-140 км/ч. Гаишники переключили радары в ручной режим и останавливали всех, кто ехал более 130 км/ч (превышение на 40-60км/ч, штраф 1500р). Показывают водителю картинку его машины со скоростью на ноутбуке, водитель сразу «Ой, а что же можно сделать? Может быть, можно как нибудь без штрафа?». Пока я сидел в машине гайцов, таких водителей я видел человек 6. Видимо, я был единственным, кто попросил написать протокол, т.к. остальные быстро выходили из соседней машины и уезжали.

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

Конечно, далеко не всё радужно и благополучно, но не так плохо, как вы пишете. В других странах будут другие проблемы, ничего идеального в мире нет. И далеко не факт, что будет хуже, чем в России сейчас.
Если не сильно за ТТК — то двушка будет стоить около 8-9 млн, в спальных районах за мкадом около 6-7млн, в городах-спутниках от 4млн. Конечно, это не в магазин пойти хлебушка купить:) Но на двоих, если предварительно стартовый капитал подкопить — реально. Я прикидывал, получалось примерно в 2-3 раза дешевле, чем в Долине, если считать относительно зарплаты.

Акции в стартапах — это хорошо, но готовы ли стартапы делать H1B, соответственно оплачивать переезд и т.д.?
Мы походу в разных странах живём.

А жопу рвать для хорошей жизни в любой стране надо.
Судя по налогам и зарплате, это либо пара в Долине, причём средненькой квалификации, либо хороший спец в Сиэтле.

По первому варианту — это получается порядка 200к рублей, если на московские зарплаты перевести. И качество жизни не сильно то и вырастет — вдвоём 200к зарабатывать более чем реально, за квартиру намного меньше платить, машина не нужна. Медицина в США такая же по качеству, как платная в Москве, только стоит намного дороже. А ДМС в Москве любая приличная контора даёт, причём нередко со стоматологией (на сколько я знаю, это нонсенс в США). Ну и супруга не имеет права работать в США, и это для многих очень сильный минус. Ну и квартиру в Москве при таких раскладах купить намного реальнее.

Второй вариант — да, на руки получается немного больше, чем тот же человек получал бы в Москве. И даже есть возможность прикупить недвижимость. Но жить совсем в деревне, и если вдруг захочет взять супругу/девушку из России — то там ей будет ещё намного более скучно, чем в Долине.
Вообще-то работает в любой части мира, где есть приемлемый уровень сигнала GPS спутников. Условие — более-менее точные часы, как именно их корректировать — на выбор разработчика девайса. Думаю, если хорошо откалибровать обычный RTC чип по температуре и поставить на девайс датчик температуры, то можно получить погрешность хода меньше минуты на долгий период времени.
В Linux можно попробовать поиграться с алгоритмами congestion window: linuxgazette.net/135/pfeiffer.html

Information

Rating
Does not participate
Location
Россия
Registered
Activity