Сейчас у меня был просто великолепный звонок с одним агентством, которому нужна была помощь. У них на сайте валится определенная функция. Чтобы понять проблему, я попросил показать код, где у них проблема и о чудо, они не знают. Уже неделю пытаются вычислить проблему, но даже не знают, в каком файле находится код. Неделю команда из трёх программистов работала над проблемой. Не знаю, что они неделю делали, если никто из них не додумался найти код.
Хрен с ним, начали искать конечно же это заняло не более 10 минут. Код выглядит вот так:
public void Function(){
try {
// здесь пару операций
}
catch (Exception e) {
throw;
}
}
Я говорю, теперь покажите мне, какая именно исключительная ситуация происходит. Ответ - а мы не можем найти, нету. Я говорю, с какого перепуга это нету, она же явно есть, вот в коде. Показывайте, где у вас хранятся все исключительные ситуации. Ответ человека на другой стороне - а я не знаю где хранятся ошибки.
Целую неделю человек занимался тем, что пытался найти проблему, а где исключительные ситуации хранятся он не знает. И чем он целую неделю занимался?
Дальше еще круто - парень спрашивает меня - вот мы найдем, какая ошибка, что делать дальше?
На этот вопрос я не смог ответить. Ну вот реально, как ответить на такой вопрос? Каждая исключительная ситуация требует своего подхода, хотя результат должен быть один, это скорей всего баг, который нужно пофиксить. А ты что делаешь, когда видишь исключительные ситуёвины? Может смотришь на них неделю или еще что делаешь?
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
А какие варианты в принципе? Логать и разбираться, выводить "something went wrong", если надо)
Михаил,скажите а есть статья про ваше первые шаги к программирования где начинали работать и т.д.
переписываю на golang - там ошибки по-другому обрабатываются :-D
Максим, а зачем вам знать чужие места работы, про первые шаги и т.д.? Поверьте, для вас сейчас все будет по-другому. С тех пор утекло слишком много воды. Тогда были в ходу другие языки программирования, была другая страна, другая экономика, другие технологии, другое образование, другой рынок труда. Вот я даже не вижу, чем вам может помочь данная информация.
"А ты что делаешь, когда видишь исключительные ситуёвины? "
Не поверишь, банально, но занимаюсь отладкой. )))
"...сейчас все будет по-другому." Но не до такой же степени, что использовать чужой опыт будет невозможно! Это было то не так давно, лет 10-15 назад уже в условиях дикого капитализма. А учебные планы в вузах, что тогда, что сейчас оторваны от реальности.
Смотря какое исключение, в большинстве случаев просто фиксишь баг, типа NPE, OutOfMemory, IndexOutOfBounds. Если аппаратные или системные, то здесь ничего не поделать, кроме как записать в лог.
2Евгений А вы знаете, чему сейчас учат в вузах? Посмотрите программу иннополиса например. Может вы учились на смежной специальности, в отличие от программной инженерии. Там как раз учат всему тому, что нужно. Фундаментальные вещи, структуры данных, алгоритмы, мат логику, и др. математику, ооп, функциональное программирование, java, phython, haskell, паттерны, postgresql, oracle. От вуза и специальности зависит.
Не будем вдаваться в детали чему там сейчас учат. Есть факты. Приходит выпускник мехмата ЮФУ на собеседование и ничего этого не знает. Может не все учат эти технологии (и далеко не факт, что они, кроме фундаментальных основ, так уж сильно востребованы). Хотя вполне может быть, что кое-что и знает, но никто у него это не спрашивает. Если посмотреть рейтинги востребованных средств разработки, то кроме java, phython, остальное не входит даже в топ-10, особенно haskell. "Как и положено в таких вещах, ярость отдельных сторонников языка обратно пропорциональна его востребованности на рынке." Он востребован в очень узкой академической среде. Вот про это и речь - обучение в вузах оторвано от реальности.
я думал, только у меня тут говнокод приходится разбирать, а нет, товарищество таких раскинуто на весь мир. Тут тоже такая практика есть. Я, мол, вот уже неделю/2/3/4 ищу ошибку (делаю вид, что работаю усердно), но вот незадача, не могу найти, а давай ка ты быстро ее найдешь, исправишь, а награду получим мы?
Звучит неплохо, верно?
2Евгений мехмат направление иное вам не кажется? Причем здесь механика? Если не вдаваться в подробности, то чем студент мехмата отличается от юриста?
Посмотрите программу иннополиса. Есть достойные вузы, где действительно можно научиться, если захотеть.
Я говорил про функциональные языки типа Erlang и Hasckell, которых не так много. Конечно они не входят в топ 10, но у них есть ниша. В вузах учат не только Java, Python, но и C#, C++, JS, чего с головой хватает.
Я закончил матмех УрГУ в 2003 году. Программирования было не очень много на учебе, в основном алгоритмы сортировок и т.п. на Pascal. Математики было много. Но я без проблем освоил Basic, FoxPro, MS Access, VBA, SQL, Delphi, 1С по книгам и с помощью начальников на работе. Каких-то запредельных знаний при приеме не требовали, понимали, что освою все по ходу работы, но желательно самому заранее по-изучать тот язык, с которым хотите работать, написать какую-то полезную программу на нем, чтобы ее показать при приеме. Начал изучать Basic в 12 лет на ПК ZX Spectrum, в 10 классе освоил на ZX Spectrum ассемблер. На 3 курсе подрабатывал на FoxPro, сестра купила книгу по FoxPro и дала дискету с дистрибутивом FoxPro, проблем в освоении не было. Во время учебы подрабатывал созданием баз на MS Access. В Delphi помогли разобраться книги Михаила, спасибо за книги Михаилу. Сразу после учебы пришлось идти на низкооплачиваемую работу, но программистом. Предлагали пойти заправщиком картриджей, но я думал на перспективу и не ошибся, через 3 года я уже устроился на более оплачиваемую работу. Сразу после учебы без опыта не хотят брать, надо быть готовым работать на не очень оплачиваемой работе, ради опыта. Хорошее базовое образование дает очень много. На сайте журнала Хакер утверждают, что не надо поступать в ВУЗ, а достаточно онлайн курсов, я с этим категорически не согласен. ВУЗ надо по-любому закончить. А там уже хоть по книгам, хоть по курсам можно изучать программирование. Исключительные ситуации в программах отлавливаю, смотрю характер ошибки и исправляю.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.