Re: setjmp/lonjmp (was: vinum warning)

看板DFBSD_kernel作者時間21年前 (2005/02/04 08:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串9/11 (看更多)
:> I'm going to nit on this. :>=20 :> Using longjmp is evil. Period. : :Is that the only justification you have for your opinion? : :Greg The problem, Greg, is that when you use something like that in a large project you basically remove a large number of programmers from the set of programmers able to work, maintain, and extend your code. Your code is especially difficult to maintain. I'm not saying its bad, just that it's especially difficult for people other then yourself to wrap their hands around and actually work with because of the lack of in-code documentation, weird code constructions that nobody else uses, weird indentation that doesn't seem to work with anyone else's editor, the extremely deeply nested statements you have, lack of compartmentalization of major function sets, and other things. I've tried to do cleanups of your vinum code before and, believe me, it is a frustrating experience! Now, so you don't feel bad, Kirk's code comes in a close second. Excellent code, but extremely difficult for someone other then kirk to maintain. In Kirk's case the main problem is a lack of in-code documentation of the very complex algorithms he uses in softupdates coupled with his propensity to hack up other parts of the system to crowbar pieces in (like the background bitmap writing code, the snapshot code, the major reliance on the precise actual implementation of other pieces of VFS system in order to be able to assume certain side effects which are also not documented anywhere in the code, and so forth). It's probably a generational thing. One of the reasons why I am allowing people to do major cleanups of our code base is precisely to try to make the code more maintainable and more comfortable for more recent generations of programmers. -Matt
文章代碼(AID): #120iAB00 (DFBSD_kernel)
討論串 (同標題文章)
文章代碼(AID): #120iAB00 (DFBSD_kernel)