Programozók ti hogyan tanultatok programozói logikát ? Azt hiszem hogy értelmetlen a kérdésem mert magam se értem, De megpróbálom leírni.. Nem vagyok programozó, öreg is vagyok már hozzá, csak néha ha van időm szeretek a gép előtt pötyögni .
A két ünnep között is kitaláltam hogy írok egy kis programocskát, a lényeg hogy társasház kezeléssel foglalkozom (gondnoki teendők és elszámolások, közüzemi díjak, lakók etc.) és összeraktam egy rendszert ami leolvassa a mérőket és elszámolgat.
(fotokat feldolgoz google vision api-val, a megfelelő mérőket felismeri a fotókon, beteszi az excelbe, van ahol már előkészítettem a wireless leolvasást (lorawan, non invasive pulse counterek, van ahol volt rs 485 interface ott az, etc) összeszed mindent, adatokat rendez felismer, és feldolgoz.
Ez működik, C az arduinohoz, python (vision api és apróságok), VBA az excelhez, és van amit simán bash scriptben írtam meg , mikor melyik rendszer rész fusson le, meg ott rendezi a képeket az aktuális elszámolásokhoz, illetve először tároltam mysql-ben adatot, mert ott is gyűjtöm bár még nem tudom hogy mire.
A kódok nagy része a neten fenn volt sampleként csak testre kellett szabni.
Szóval a rendszer megy, megdöbbentően jó lett, ellenben orbitálisan nagy káosz. Az oop alapjait tanulgatom meg értem, de nem tudom használni, örökké azon kapom magam hogy ismétlődő rutinokat ezerszer bemásolok, szóval semmi logika nincs abban amit felépítek, tákolmány az egész.
Ezt hol lenne érdemes tanulni ?? 50 felé, olyan ember aki azt nézi hogy jajj megrepedt a vakolat, leglettelem ha már itt járok, kiégett az izzó, tönkrement a kódzár, csepeg egy rézcső de jó hogy itt a flexem meg a forrasz lámpám gyorsan megjavítom, az már nem akar egyetemre menni, hülyén is néznék ott ki, nomeg nem vagyok olyan értelmes hogy végig tudjam csinálni, de gondolkodtam valami tanfolyam félén, ahol rájövök hogy mi az, aminek a hiányát érzem, és hogyan lehetne azt fejleszteni.
Szerintem azzal lenne érdemes kezdeni, hogy papíron megtervezed lépésenként az adott feladatot, vagy részfeladatot.
Mit szeretnél megoldani, milyen függvényeket hívsz meg, mi mi után következzen.
Ezt amikor mondták (tervezés) sose értettem: "minek tervezzek, az idő megy el vele, míg ha azonnal írom a kódot, tudom próbálgatni), de a kód-írás meg próbálgatás elvonhatja a figyelmet a lépésenkénti tervezésről, míg ha jól ki van dolgozva, végig van gondolva, akkor egyszerűbb megoldani.
Nem dolgoztam soha a szakmában, nagyon régen programozói OKJ-t végeztem.
Egyébként minden elismerésem hogy egy ilyen rendszert hoztál össze.
1: na pont ez a bajom hogy nem tudom megtervezni. Nekiállok, rajzolom, belezavarodok fogom a fejem.. Érzem hogy kész a terv, ÉS nincs kész, minden kimaradt, semmi se olyan mint lennie kell, mikor írom már a tervre rá se nézek, talán 1-2 pont ami fontos..
Képtelen vagyok összeállítani a rendszert, csak lépéseket látok ami a gondolatomban van azt csinálom.
Ide valami gondolkodás mód kellehet amit nem értek.
Béna példa de talán így érthető:
Sok elszámolás van, és az elszámolásokat külön excelek végzik mert minden lakóépületben vannak speciális igények.
A táblázatot berendeztem, de a feldolgozni kívánt adatok is összevissza mezőbe kerültek.
AKár egy dátum, mert jajj az egy dátum kit érdekel, az elszámoló lapon lesz valahol és kész. Most egyik háznak vagy akár lakásnak itt vagy ott nem számít.
A kit érdekel dátum azt ment az sql-be, ment az exceles összesítőbe, a dátum még a generált output pdf filenevébe is megy.
ÉS máris, minden mentés egyedi lett mert ahány sheet annyi helyen a pdf-ben.
ÉS totál elvesztem, nem érzek rá hogy hogyan kellene ezt a "rendet" megteremteni.
Minden adatot rekordokba szervezni (oop-hoz nem értek), mindennek legyen meg a saját feladata és csak azt csinálja.
Én egyszer olyan programot írtam, ami egy fájlt dolgozott fel, szeparátor-karakterrel el voltak választva egymástól az adatok, volt ahol dátumot is kellett beszúrni.
Egyszerre csak egyetlen adott lépésre koncentráltam, ha kapkodtam és "mindent egyszerre, azonnal akartam", belekeveredtem a programba, sose az történt amit kellett volna csinálnia, mindig máshova szúrta be az adott dolgot.
Minden rész-feladatot külön meghívandó alprogramokba szerveztem és egyrészt átlátható volt, másrészt minden azt csinálta és pontosan akkor, amikor kellett.
Okoskodni nem szeretnék, mert csak és kizárólag magamnak írogattam programokat, csak ilyen tapasztalataim voltak és rájöttem, hogy akár napokig is tudok szenvedni valamivel, ami lehet rögtön megoldódna, ha a legapróbb részegységekre szedném.
Lehet érdemes szétszedni azt is ami az összesítőbe dolgozik, meg ami lakásonként írogatja az adatokat, de nem tudom, mivel a felépítést nem ismerem.
Nézegess már megírt projekteket, hogy mások hogyan csinálják. Githubon sokat találsz. Illetve van a Programtervezési minták c. könyv, azt is érdemes elolvasni.
A legjobb előre papíron tisztázni, hogy milyen osztályaid lesznek, az általánosabbaktól elindulni a speciálisabbakig, ez alapján készíteni valamiféle vázlatos osztályhierarchiát, és utána részletesebben végigfuttatni a folyamatokat papíron, hogy látszódjon, pontosan kinek mi a feladat, mi nem a feladata, mi a felelőssége, mi nem az, ki honnan hívható, ki lesz public, ki protected... ez nekem is sokszor a halálom, hogy tudom, hogy egy adott propertyt nem kéne publicra tenni, de muszáj, ....
Egy programot meg kell tervezni.
Az meg úgy megy, hogy az egész problémát részekre bontod.
Előszr megtervezed a szükséges adatszerkezeteket. Ezután egy-egy részt megvalósítasz tervezési szakban, majd ha mindennel megvagy, akkor leimplementálod.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!