dcneeme/uniscada — pull request #8 by Cougar (2014-07-27 12:19:01+00:00)
Title: Msgsend

Ma ei saanud seda normaaslelt edida enne kui tühikute puhastuse tegin ning DOSi formaadist UNIXisse konvertisin. Muidu poleks sa selest diffist midagi aru saanud.

Viimane commit on pmst see, mis sul käima hakkab aga universaalsuse mõttes on see vaja ringi teha. Mida võiks teha:

- UDPReader nimetada ümber UDPComm vms. See ei tegele ainult lugemise vaid ka kirjutamisega.

- UDPReader klassile tekitada Interface, kus oleks defineeritud vastuse saatmise meetodi nimi. Praegu on message2host sees kirjas udpreader.udpsend() aga see peaks olema näiteks comm.send() vms nimi, mis oleks sama olenemata teadete saatmis/vastuvõtu liidesest.

- UDPReader peaks hakkama träkkima oma kliente (IP+port alusel) eraldi mingi Client klassi instantsidena ning saatma readeri callbackiga kaasa mitte enada instantsi aga vastava kliendi instantsi. Siis ei pea SDPBuffer enam midagi teadma vastuse tegemisel IP-st ega pordist.

- Klientide peaks olema mingi globaalne instants, mis need kokku seob. Siis saab saata klientidele teateid ka ilma, et ennem peaks klient ise midagi saatnud olema ja saab saata ainult ühe vastuse.

- Koodi loetavust peab parandama. Kommentaaride hulka tuleb vähendada (eriti kui need read üle 72 märgi pikaks lähevad) ning selle asemel kasutada arusaadavamaid muutujate ja meetodide nimesid. # kommentaaride asemel kasutada pydoc-i. Meetode on vaja veel rohkem tükeldada. Üks meetod peab tegelema vaid ühe asja tegemisega ja kui seal on mingeid alamtegevusi, tuleb need eraldi meetodideks (või ka klassideks) teha. Teadete formaadi töötlus ja SQL on täiesti erinevad asjad ja ei tohiks kuskil koos olla. SQL tuleb viia eraldi klassi ning selle klassi liides peab olema täiesti SQL-ist sõltumatu, et saaks andmete hoidmiseks ka muid võimalusi kasutada.