Ipari zen

Szak-irodalom. A fejlesztő jajszava haikuban. A technika ördöge avagy a lelketlen vasban a mélyen emberi.

A szoftverfejlesztés művészete és a zen


2010.12.26. 22:53 Ipari zen

Hiányzó számla a zárszámadásnál

Címkék: c# aszinkron thread exception begininvoke endinvoke delegate

Mit előlegként
már megkaptál, ne várd a
végelszámolásnál.

Ahogy minden szoftverfejlesztőt, most éppen engem is utolért a végzet. Egy régebben C#-ban mások által megírt kódban kellett ad-hoc javítgatni egyet s mást, többek között egy el nem kapott exceptiont kellett valahogyan ártalmatlanná tenni. A probléma gyökere egy aszinkron függvényhívás mélyén rejtőzött, ahol az XML értelemző próbálta egy exceptionben a tudomásunkra hozni nemtetszését számunkra megfejthetetlen okból.

2 komment

2010.01.03. 15:11 Ipari zen

Null pointer exception

Címkék: copy pointer constructor null exception smart pointer

Kincs ami nincs a
longint, ha pointered
semmibe mutat.

Egy nagy C++ modulban a memóriahatékonyság miatt pointereket is szép számmal tartalmazó kisebb objektumot küldözgettünk át egy csomó feldolgozó osztályon. Közben persze elkövettük az ilyenkor lehetséges összes hibát:

  • megjegyeztük a stacken létrehozott változó címét
  • nem készítettünk a copy konstruktort az osztályhoz, aztán mégis másolgattuk az objetumokat
  • nem inicializáltuk a pointereket, aztán használtuk őket
  • tesztelés nélkül használtuk a null-pointereket éles bevetésen

és még számtalan egyebet is, mert ugye végtelen a pointerekkel összefüggő hibák tárháza. Mikor már elviselhetetlenné nőttek a karbantartási költségek egy nagyobb lélegzetvételű újraírás következett. Hosszabb tanakodás után persze egy referenciaszámláláson alapuló smart-pointer rendszer lett a befutó és azóta is szolgál mindenki megelégedésére. Messze behozta már a ráfordított költségeket.

2 komment