Category: архитектура

Category was added automatically. Read all entries about "архитектура".

Портрет

Программистское

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

1. Избегайте использования unsigned, даже если по смыслу заданная переменная ну никак не может быть отрицательным числом. В расчетных формулах бывает чрезвычайно трудно углядеть что в конструкции наподобие

float movement_val = -left_img_pixel * images.at(i).position + images.at(i).x_correction;

где left_img_pixel - это unsigned int, получится лажа

1bis. А вот const-модификаторы, напротив, имеет смысл использовать как можно чаще и как можно больше. Но почему-то привычка юзать unsigned у меня есть, а const - нет.

2. Хотя, in general, чем проще код - тем лучше, нередко полезным представляется пойти на усложнение кода путем добавления в него полноценного обработчика "частных случаев". Например, если мы сравниваем одно изображение с другим, то ситуацию "выхода за край изображения" лучше обработать отдельно, нежели использовать функцию сравнения, проверяющую выход за границы изображения и игнорирующую соответствующие пикселы либо выдающую "барьерное" значение. В противном случае можно нарваться на ситуацию, когда код поиска фрагментов изображения будет стремиться либо "вывести" сравниваемый блок за пределы изображения, либо, напротив, "любой ценой не выводить". Специальный обработчик позволяет "разрулить" ситуацию наиболее корректно; а кроме того он несколько надежнее, поскольку (путем добавления assert-ов) позволяет отследить глюки с расчетом координат, которые при "игнорировании" выхода за пределы изображения могли бы остаться незамеченными. При этом, естественно, важно соблюсти баланс и не удариться в слепое copy-paste - но тут уже все зависит от ваших способностей архитектора :)
Портрет

Знакомство с Сан-Франциско

Сан-Франциско очень необычный город во всех отношениях. Он появился на свет благодаря заливу Сан-Франциско на берегу Тихого океана - огромная и очень удобная гавань, надежно защищающая от штормов просто не могла пройти мимо внимания моряков. Так и появилось на его берегу два поселения - приморский Сан-Франциско с одной стороны, на узкой полоске берега, разделяющей океан и залив, и Окленд - на противоположной. Так что Сан-Франциско стоит как бы на маленьком холмистом полуострове с очень плотной застройкой и окружен с трех сторон водой. Поэтому здесь вполне можно увидеть улицы с уклоном в 35-45 градусов (я не шучу!), и всегда довольно прохладно и туманно - это проплывающие облака "цепляются" за город. Так что несмотря на крайне южное по российским меркам расположение, здесь нередко бывает довольно холодно, особенно у Залива. Но это, впрочем, мелочи жизни, - зато где еще увидишь такое чудо, как знаменитый трамвай на канатной тяге?



Collapse )