Cortiveo i GEngine - prirucnik

↑ Nazad

Rečnik pojmova

pojamznačenje
dbt„database table" — skraćenica u celom engine-u (DbtObject, dbtCreate, GDbTable)
DbtObjectJava klasa koja jeste tabela: kolone, ponašanje i kursor u jednom
MemDbtObjectisto, ali u memoriji (GDataServer.Type.MEMORY) — podaci iz .txt, bez SQL-a
obrazacjedna vrsta štampanog dokumenta (pismo, opomena) + njegovi podaci i parametri
H / Lglava / stavke (definitionprinth ↔ definitionprintl), master-detail
koveratjedan klijent = jedna pošiljka; getCountCoverat() ih broji
AA brojredni broj pošiljke koji se nastavlja kroz poslove (StartRb)
ClientStranaCountkoliko listova ima jedan klijent; redovi u ObrazacH su listovi
GMenuCallableinterfejs menuCall(frame, parametri) — posao bez GUI-ja
GCbMessageporuka u callback-u: TRIGGERALWAYS, SETACTION, EDITACTION…
SysTable„tabela tabela": registar svih tabela, i ekran i akcija „(Ре)креирај"
JDWP / JDIprotokol i API kojim se spolja posmatra živi JVM (debager, naš tracer)
golden masterpostojeća aplikacija kao merilo ispravnog ponašanja pri modernizaciji

Gde šta živi

putanja
Cortiveo (alat)E:\Work\AI\Cortiveo — git repo, docs\, build.ps1
GEngine izvor.208: D:\data\workspace-grom\GEngine (najnoviji), kućna kopija D:\Shared\workspaceoxigen\GEngine
GTehnobiro izvor.208: D:\data\workspace-grom\GTehnobiro, kućna D:\RUTER\Milos\Posao\src
Autoprint.208: ...\GTehnobiro\src\db\tehnobiro\autoprint\
test podaci.208: C:\ProgramData\DeveloperTools\TEST
baza (lokalna)MySQL Tehnobiro na 127.0.0.1, klijent u ...\Stampa\MySql51\bin
znanje/presekE:\Work\AI\INFO_BANK\projects\cortiveo\ (STATUS.md, gengine-architecture.md)

Izvori su na 4 mašine (.208, .214, .201 ×2, kućna) i Syncthing ih razvlači — .208 je referenca. Otvoren plan: jedan git repo svih verzija, da se zna koja je prava.

Zadaci, po redosledu (svaki je i lekcija)

  1. Boja pasusa u štampi — kolona u DefinitionPrintL + ALTER + PrintItem + setColor po uzoru na GPrintJob:447/505. Uči: Metadata Mapping, evolucija šeme.
  2. Autoprint u pogonu — probni prolaz nad TEST folderom, pa potvrda da li podela po broju listova sme filterom; onda prava štampa i prolaz kroz 15 baza. Uči: Record Set, filteri, globalno stanje aktivne baze.
  3. xlsx umesto xls — GExcelDataSource2d + GEngineExcel, POI HSSF → XSSF/SXSSF. Uči: Bridge.
  4. Ubrzanje — meriti Cortiveo tracerom, pa keširati kolone; ne dirati kičmu nasleđivanja. Uči: gde amplifikacija nastaje.
  5. PostgreSQL / MSSQL — GMySqlDatabase + GDataDriverMySql + GMySqlDataLink su jedino mesto gde nastaje SQL. Uči: koliko vredi jedan dobro postavljen seam.

Zasebno: bezbednost

Lozinka baze je zakucana u GMySqlDataLink, pa je u svakoj kopiji arhive. Treba je rotirati i preći na sistemske promenljive ili eksterni konfiguracioni fajl. Baza je in-house i nosi samo podešavanja i konfiguracije štampe — ali lozinka u 10+ kopija izvora ostaje loša navika.

Pravila rada koja su se isplatila

  1. Prvo izmeri, pa menjaj — Groovy dodatak je usporio aplikaciju 300×; 67 s „baze" bio je tracer.
  2. Ne nagađaj tuđi ugovor — getArgumentValues() ume da baci InternalException; dokazuje se probom, ne dokumentacijom.
  3. Tihi fallback je gori od greške — ako se provera može izmeriti, alat mora da odbije posao, a ne da „razumno pretpostavi".
  4. Podaci klijenata se ne otvaraju — imena fajlova i struktura da, sadržaj ne.
  5. Produkcija nije poligon — novi kod ide kao nov fajl, postojeći se ne menja bez potrebe; pre svake izmene na tuđoj mašini ide bekap.

Ovaj priručnik se dopunjuje. Kad naučiš ili izmerimo nešto novo, dopisuje se ovde — s primerom iz koda, a ne s opštim pravilom.

Izvor: 06-recnik-i-dalje.md