[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-panel-devel
Subject: making changes to DataEngine
From: "Aaron J. Seigo" <aseigo () kde ! org>
Date: 2011-11-30 8:32:08
Message-ID: 2879444.WVkVexZJlN () freedom
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
[Attachment #4 (multipart/alternative)]
hi :)
the code in DataEngine (and related classes) is very unforgiving. it must
absolutely and at all times follow to the letter the contracts it sets forth
as to things like source availability, calls to dataUpdated, etc.
every time one of these things is wrong in the code we get bugs in applets and
dataengines as a result. trust me, i managed to do that several times while
writing that code in the first place. ;) in fact, just last week i fixed
another interesting edge case.
what i'm trying to say is that the code there is not particularly robust to
changes unless there is a relatively deep understanding of what's going on in
there.
the result is that within the last couple of weeks two people have fixed the
same bug in the same incorrect manner. i didn't notice the original change as
it happened while i was heading out on vacation .. noticed the issue while
reading through the code and 'fixed' it, reintroducing the original bug, which
another person then fixed back to exactly the same original problem.
so ... in future, when working on DataEngine code please consider the
following:
* even if it is a one-liner, run it by me. i know that code better than anyone
and will be able to point out problems that are not perhaps immediately
apparent.
* if you do make a change in the code to address a non-obvious situation,
please leave a comment in the code noting why that change was made.
thanks ...
--
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
KDE core developer sponsored by Qt Development Frameworks
[Attachment #7 (unknown)]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" \
"http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" \
content="1" /><style type="text/css"> p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Bitstream Vera Sans'; font-size:12pt; \
font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">hi :)</p> <p style="-qt-paragraph-type:empty; margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; "> </p> <p style=" margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">the code in DataEngine (and related classes) is very unforgiving. \
it must absolutely and at all times follow to the letter the contracts it sets forth \
as to things like source availability, calls to dataUpdated, etc.</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">every time one of these \
things is wrong in the code we get bugs in applets and dataengines as a result. trust \
me, i managed to do that several times while writing that code in the first place. ;) \
in fact, just last week i fixed another interesting edge case.</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">what i'm trying to say is \
that the code there is not particularly robust to changes unless there is a \
relatively deep understanding of what's going on in there.</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">the result is that within the \
last couple of weeks two people have fixed the same bug in the same incorrect manner. \
i didn't notice the original change as it happened while i was heading out on \
vacation .. noticed the issue while reading through the code and 'fixed' it, \
reintroducing the original bug, which another person then fixed back to exactly the \
same original problem.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; "> </p> <p style=" margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">so ... in future, when working on DataEngine code please consider \
the following:</p> <p style="-qt-paragraph-type:empty; margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; "> </p> <p style=" margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
-qt-user-state:0;">* even if it is a one-liner, run it by me. i know that code better \
than anyone and will be able to point out problems that are not perhaps immediately \
apparent.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> \
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">* if you do make a change in \
the code to address a non-obvious situation, please leave a comment in the code \
noting why that change was made.</p> <p style="-qt-paragraph-type:empty; \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; "> </p> <p style=" margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; -qt-user-state:0;">thanks ...</p> <p \
style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; \
margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">-- </p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Aaron J. Seigo</p> <p style=" \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">humru othro a kohnu se</p> <p \
style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; -qt-user-state:0;">GPG Fingerprint: 8B8B 2209 \
0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43</p> <p style="-qt-paragraph-type:empty; \
margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; \
-qt-block-indent:0; text-indent:0px; "> </p> <p style=" margin-top:0px; \
margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; \
text-indent:0px; -qt-user-state:0;">KDE core developer sponsored by Qt Development \
Frameworks</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; \
margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; \
"> </p></body></html>
["signature.asc" (application/pgp-signature)]
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic