Runta marka hore, ama sababta nidaam loogu baahan yahay in loo qaabeeyo iyadoo lagu salaynayo naqshadaynta xogta

Haye Habr!

Waxaan sii wadeynaa baaritaanka mowduuca Java ΠΈ Spring, oo ay ku jiraan heerka kaydka xogta. Maanta waxaan kugu martiqaadeynaa inaad akhrido sababta, marka la naqshadeynayo codsiyada waaweyn, waa qaab-dhismeedka database-ka, ee maaha code-ka Java, waa inuu noqdaa mid muhiimad gaar ah leh, sida tan loo sameeyo, iyo waxa ka reeban sharcigan.

Maqaalkan oo ah mid soo daahay, waxaan ku sharixi doonaa sababta aan u aaminsanahay in ku dhawaad ​​dhammaan kiisaska, qaabka xogta ee arjiga waa in laga qaabeeyaa "laga bilaabo database-ka" halkii "laga bilaabo awoodaha Java" (ama luuqad kasta oo macmiil ah oo aad tahay la shaqaynta). Markaad qaadato habka labaad, waxaad naftaada u dejinaysaa waddo dheer oo xanuun iyo rafaad ah marka mashruucaagu bilaabo inuu koro.

Maqaalka ayaa ku saleysan hal su'aal, oo lagu bixiyo dul qulqulka Iskoorka.

Wadahadalo xiiso leh oo ku saabsan Reddit oo qaybo ka mid ah /r/java ΠΈ /r/programming.

Jiilka code

Sideen ula yaabay in ay jiraan qayb yar oo isticmaalayaasha ah kuwaas oo bartay jOOQ, aad uga cadhooday xaqiiqda ah in jOOQ ay si dhab ah ugu tiirsan tahay abuurista koodhka si ay u shaqeyso. Ma jiro qof kaa diidaya inaad isticmaasho jOOQ sida aad u aragto inay ku habboon tahay, ama kugu qasbaysa inaad isticmaasho jiilka koodka. Laakin habka caadiga ah (sida lagu sharaxay buug-gacmeedka) habka aad ula shaqeyso jOOQ waa inaad ku bilawdo qorshaha xogta (dhaxalka), u rogo injineerka adoo isticmaalaya koodhka jOOQ si aad u hesho qaybo ka mid ah fasalada matalaya miisaskaada, ka dibna qor nooca - su'aalo badbaado leh oo ku saabsan jaantusyadan:

	for (Record2<String, String> record : DSL.using(configuration)
//   ^^^^^^^^^^^^^^^^^^^^^^^ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° Π½Π° 
//   основании сгСнСрированного ΠΊΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅
// Π½ΠΈΠΆΠ΅ условиС SELECT 
 
       .select(ACTOR.FIRST_NAME, ACTOR.LAST_NAME)
//           vvvvv ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^ сгСнСрированныС ΠΈΠΌΠ΅Π½Π°
       .from(ACTOR)
       .orderBy(1, 2)) {
    // ...
}

Koodhka waxaa lagu soo saaray gacan ka baxsan shirka, ama gacanta kulan kasta. Tusaale ahaan, dib u soo kabashada noocan oo kale ah ayaa laga yaabaa inay raacdo isla markiiba ka dib hijrada xogta Flyway, kaas oo sidoo kale lagu samayn karo gacanta ama si toos ah.

Jiilka code Source

Waxaa jira falsafado kala duwan, faa'iidooyin iyo faa'iido darrooyin la xidhiidha hababkan si loo abuuro code - buug-gacmeed iyo si toos ah - oo aanan si faahfaahsan uga hadli doono maqaalkan. Laakiin, guud ahaan, dhammaan barta koodhka la soo saaray ayaa ah in ay noo ogolaato in aan ku soo saarno Java "runta" ee aan u qaadanno si dhab ah, ha ahaato nidaamkayaga ama ka baxsan. Dareen ahaan, tani waa waxa isku-dubaridyadu sameeyaan marka ay soo saaraan bytecode, koodka mashiinka, ama nooc kale oo koodka isha - waxaan helnaa matalaad "runteena" luqad kale, iyadoon loo eegin sababaha gaarka ah.

Waxaa jira qaar badan oo ka mid ah koronto-dhaliyeyaasha noocaan ah. Tusaale ahaan, XJC waxay soo saari kartaa koodka Java oo ku salaysan faylasha XSD ama WSDL. Mabda'a had iyo jeer waa isku mid:

  • Waxaa jira xoogaa run ah (gudaha ama dibadda) - tusaale ahaan, qeexid, model xog, iwm.
  • Waxaan u baahanahay wakiil maxalli ah oo runtan ah oo ku jira luuqadeena barnaamijka.

Waxaa intaa dheer, waxaa had iyo jeer lagula talinayaa in la dhaliyo matalaad noocaas ah si looga fogaado dib u dhac.

Nooca Bixiyeyaasha iyo Habraaca Qoraalka

Fiiro gaar ah: hab kale, ka casrisan oo gaar ah oo loogu talagalay soo saarista koodka jOOQ ayaa isticmaalaya bixiyayaasha nooca, sida ay u dhaqan galiyeen F#. Xaaladdan oo kale, koodka waxaa soo saaray isku-duwaha, dhab ahaantii marxaladda isku-darka. Mabda 'ahaan, koodhkan oo kale kuma jiro qaabka isha. Java waxay leedahay wax la mid ah, in kasta oo aan ahayn sida xarrago leh, aaladaha - soo-saareyaasha sharraxaadda, tusaale ahaan, Lombok.

Dareen ahaan, wax la mid ah ayaa halkan ka dhacaya sida kiiskii ugu horreeyay, marka laga reebo:

  • Ma arkaysid koodka la soo saaray (laga yaabee in xaaladdani ay u muuqato mid aan cidhiidhi ku ahayn qof?)
  • Waa inaad hubisaa in noocyada la bixin karo, taas oo ah, "run" waa in had iyo jeer la heli karaa. Tani way fududahay kiiska Lombok, kaas oo qeexaya "runta". Way ka yara adag tahay moodooyinka kaydka ee ku xidhan xidhiidh toos ah oo la heli karo.

Waa maxay dhibatada soo saarista koodhka?

Marka lagu daro su'aasha khiyaaliga ah ee sida ugu wanaagsan ee loo socodsiiyo jiilka code - gacanta ama si toos ah, waa inaan sidoo kale sheegnaa in ay jiraan dad aaminsan in abuurista code aan loo baahnayn dhammaan. Sababta aragtidan, oo aan inta badan la kulmay, ayaa ah in markaa ay adagtahay in la sameeyo dhuumaha dhismaha. Haa, runtii way adag tahay. Kharashyada kaabayaasha dheeraadka ah ayaa soo baxa. Haddii aad hadda uun ku bilaabayso badeecad gaar ah (haddii ay tahay jOOQ, ama JAXB, ama Hibernate, iwm.), dejinta deegaan wax-soo-saar waxay qaadanaysaa wakhti aad doorbidi lahayd inaad barato API lafteeda si aad qiimo uga soo saarto .

Haddii kharashyada la xidhiidha fahamka qaab-dhismeedka koronto-dhaliyaha ay aad u sarreeyaan, markaa, runtii, API wuxuu sameeyay shaqo liidata isticmaalka koodhka koodhka (ka dibna waxay soo baxday in is-beddelka isticmaalaha uu sidoo kale yahay mid adag). Isticmaalku waa inuu ahaadaa mudnaanta ugu sareysa API kasta oo noocaas ah. Laakiin tani waa hal dood oo ka dhan ah jiilka code. Haddii kale, gabi ahaanba waa buug in la qoro matalaad maxalli ah oo ku saabsan runta gudaha ama dibadda.

Qaar badan ayaa odhan doona ma haystaan ​​wakhti ay waxan oo dhan ku sameeyaan. Waxay ka dhamaanayaan waqtiyada kama dambaysta ah ee wax soo saarkooda Super Maalin maalmaha ka mid ah ayaanu nadiifin doonaa gaadiidka xamuulka qaada, waqti ayaanu heli doonaa. Waxaan ugu jawaabi doonaa:

Runta marka hore, ama sababta nidaam loogu baahan yahay in loo qaabeeyo iyadoo lagu salaynayo naqshadaynta xogta
Asalka, Alan O'Rourke, Xidhmada Dhagaystayaasha

Laakiin gudaha Hibernate/JPA aad bay u fududahay in lagu qoro koodka Java.

Runtii. Hibernate iyo isticmaaleyaasheeda, tani waxay labadaba u tahay duco iyo habaar. Gudaha Hibernate waxaad si fudud ugu qori kartaa dhowr shirkadood, sida tan:

	@Entity
class Book {
  @Id
  int id;
  String title;
}

Oo ku dhawaad ​​wax walba waa diyaar. Hadda waxay ku xiran tahay Hibernate si ay u soo saarto "faahfaahinta" adag ee sida saxda ah ee ciddan loogu qeexi doono DDL ee "lahjadaada" SQL:

	CREATE TABLE book (
  id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  title VARCHAR(50),
 
  CONSTRAINT pk_book PRIMARY KEY (id)
);
 
CREATE INDEX i_book_title ON book (title);

... oo bilow socodsiinta codsiga. Fursad aad u fiican oo aad si dhakhso leh u bilowdo oo aad isku daydo waxyaabo kala duwan.

Si kastaba ha ahaatee, fadlan ii oggolow. been baan sheegayay.

  • Hibernate dhab ahaantii ma hirgelin doontaa qeexida furaha aasaasiga ah ee la magacaabay?
  • Hibernate ma ku abuuri doonaa tusmo TITLE? – Waxaan hubaa inaan u baahan doono.
  • Hibernate si sax ah ma u samayn doontaa furahan aqoonsiga sifaynta aqoonsiga?

Malaha maya. Haddii aad mashruucaaga ka soo saarayso meel eber, had iyo jeer way ku habboon tahay inaad si fudud u tuurto xog-ururinta hore oo aad mid cusub samayso isla marka aad ku darto sharraxaadaha lagama maarmaanka ah. Haddaba, kooxda buuggu ugu dambayntii waxay qaadan doontaa foomka:

	@Entity
@Table(name = "book", indexes = {
  @Index(name = "i_book_title", columnList = "title")
})
class Book {
  @Id
  @GeneratedValue(strategy = IDENTITY)
  int id;
  String title;
}

Qabow Dib u soo noolayn Mar labaad, kiiskan wuxuu noqon doonaa mid aad u fudud bilowga.

Laakin waa in aad bixisa mar dambe

Mar dhow ama hadhow waa inaad wax soo saartaa. Taasi waa marka qaabkani uu joojin doono shaqada. Sababtoo ah:

Soo saarista, mar dambe suurtagal ma noqon doonto, haddii loo baahdo, in la tuuro xogta hore oo laga bilaabo xoqan. Xogtaadu waxay noqon doontaa dhaxal.

Hadda laga bilaabo iyo weligii waa inaad wax qortaa Qoraallada socdaalka DDL, tusaale ahaan, adeegsiga Flyway. Maxaa ku dhici doona hay'adahaaga kiiskan? Ama waxaad la qabsan kartaa iyaga si gacanta ah (oo markaa laba jibaari kartaa shaqadaada), ama waxaad u sheegi kartaa Hibernate inay dib kuugu soo nooleeyaan (sidee bay u badan tahay kuwa habkan loo soo saaray si ay ula kulmaan waxyaabaha aad filayso?) Si kastaba ha noqotee, waad lumisay.

Markaa marka aad gasho wax soo saarka waxaad u baahan doontaa balastar kulul. Waxayna u baahan yihiin in si degdeg ah loo soo saaro. Maadaama aadan diyaarsaneyn oo aadan abaabulin dhuumo siman oo socdaalkaaga wax soo saarka, waxaad si duuduuban wax walba u dhejisaa. Kadibna mar dambe ma haysatid wakhti aad wax walba si sax ah u sameyso. Oo waxaad dhaleecaysaa Hibernate, sababtoo ah had iyo jeer waa qalad qof kale, kaliya maaha adiga ...

Taa beddelkeeda, arrimuhu waxay noqon karaan kuwo gebi ahaanba ka duwan bilowgii hore. Tusaale ahaan, saar taayir wareeg ah baaskiilka.

Database marka hore

Xaqiiqda dhabta ah ee "runta" ee ku jirta qorshaha xogtaada iyo "madaxbanaanida" ee ka jirta waxay ku dhex jirtaa kaydka xogta. Nidaamka waxaa lagu qeexaa oo kaliya in database laftiisa iyo meel kale, iyo macmiil kasta wuxuu leeyahay nuqul ka mid ah qorshaha this, sidaas darteed waxa ay samaynaysaa macno fiican in la dhaqan geliyo u hoggaansanaanta schema iyo daacadnimadeeda, si sax ah in database - halkaas oo macluumaadka waa. kaydsan.
Tani waa duug, xataa xigmad la jabsaday. Furayaasha aasaasiga ah iyo kuwa gaarka ah ayaa wanaagsan. Furayaasha shisheeye ayaa wanaagsan. Hubinta xayiraadaha ayaa wanaagsan. Sheegashooyinka - Fiican.

Waxaa intaa dheer, taasi maahan. Tusaale ahaan, addoo isticmaalaya Oracle, waxaad u badan tahay inaad rabto inaad qeexdo:

  • Meeqo miiskaagu ku yaal?
  • Waa maxay qiimihiisu PCTFREE?
  • Waa maxay cabbirka kaydka ee taxanahaaga (ka dambeeya id)

Tani waxaa laga yaabaa inaysan muhiim u ahayn nidaamyada yaryar, laakiin maaha inaad sugto ilaa aad u guurto goobta xogta weyn - waxaad bilaabi kartaa inaad ka faa'iidaysato wanaajinta kaydinta iibiyaha sida kuwa kor ku xusan si dhakhso ah. Midkoodna ORM-yada aan arkay (ay ku jirto jOOQ) kuma siisana marin u helka xulashada DDL oo dhan oo laga yaabo inaad rabto inaad ku isticmaasho xogtaada. ORM-yadu waxay bixiyaan qalabyo kaa caawinaya qoritaanka DDL.

Laakin dhamaadka maalinta, wareeg si fiican loo nashqadeeyay ayaa gacanta lagu qoray DDL. DDL kasta oo la soo saaro waa qiyaas ahaan.

Ka waran qaabka macmiilka?

Sida kor ku xusan, macmiilka waxaad u baahan doontaa koobiga schema database-kaaga, aragtida macmiilka. Looma baahna in la sheego, aragtida macmiilka waa in ay la mid noqotaa qaabka dhabta ah. Waa maxay habka ugu wanaagsan ee tan lagu gaari karo? Isticmaalka koronto dhaliyaha.

Dhammaan xog-ururinta waxay ku bixiyaan macluumaadkooda meta iyadoo loo marayo SQL. Waa kuwan sida aad uga heli karto dhammaan jaantusyada xogtaada ee lahjadaha SQL ee kala duwan:

	-- H2, HSQLDB, MySQL, PostgreSQL, SQL Server
SELECT table_schema, table_name
FROM information_schema.tables
 
-- DB2
SELECT tabschema, tabname
FROM syscat.tables
 
-- Oracle
SELECT owner, table_name
FROM all_tables
 
-- SQLite
SELECT name
FROM sqlite_master
 
-- Teradata
SELECT databasename, tablename
FROM dbc.tables

Weydiimahan (ama kuwa la midka ah, waxay kuxirantahay inaad sidoo kale tixgeliso aragtiyaha, aragtiyaha la taaban karo, shaqooyinka la qiimeeyo) sidoo kale waxaa lagu fuliyaa adigoo wacaya. DatabaseMetaData.getTables() ka yimid JDBC, ama isticmaalaya jOOQ meta-module.

Natiijooyinka weydiimahan oo kale, way fududahay in la soo saaro qaab kasta oo dhinaca macmiilka ah ee qaabka xogtaada, iyada oo aan loo eegin waxa tignoolajiyada aad ku isticmaasho macmiilka.

  • Haddii aad isticmaalayso JDBC ama Gu'ga, waxaad samayn kartaa set oo ah xadhig joogto ah
  • Haddii aad isticmaasho JPA, waxaad abuuri kartaa hay'adaha laftooda
  • Haddii aad isticmaasho jOOQ, waxaad soo saari kartaa qaabka-meta-jOOQ

Iyada oo ku xidhan inta shaqayn ee uu bixiyo API macmiilkaagu (tusaale jOOQ ama JPA), qaabka meta ee la soo saaray wuxuu noqon karaa mid qani ah oo dhamaystiran. Qaado, tusaale ahaan, suurtogalnimada ku biirista qarsoon, lagu soo bandhigay jOOQ 3.11, kaas oo ku tiirsan xogta meta ee la soo saaray ee ku saabsan xidhiidhada muhiimka ah ee ajnabiga ah ee ka dhex jira miisaskaaga.

Hadda xog kasta oo la kordhiyo ayaa si toos ah u cusbooneysiin doonta lambarka macmiilka. Bal qiyaas tusaale:

ALTER TABLE book RENAME COLUMN title TO book_title;

Runtii ma rabi lahayd inaad shaqadan qabato laba jeer? Xaalad la'aan. Si fudud u gal DDL, dhex mari dhuumahaaga dhismaha, oo hel cidda la cusboonaysiiyay:

@Entity
@Table(name = "book", indexes = {
 
  // Π’Ρ‹ ΠΎΠ± этом Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ?
  @Index(name = "i_book_title", columnList = "book_title")
})
class Book {
  @Id
  @GeneratedValue(strategy = IDENTITY)
  int id;
 
  @Column("book_title")
  String bookTitle;
}

Ama fasalka jOOQ ee la cusboonaysiiyay. Inta badan isbeddelada DDL waxay sidoo kale saameeyaan semantics, ma aha oo kaliya syntax. Sidaa darteed, waxa ay noqon kartaa mid waxtar leh in la eego koodka la soo ururiyey si aad u aragto waxa koodka (ama laga yaabo) ay saamaynayso kordhinta xogtaada.

Runta kaliya

Iyadoo aan loo eegin waxa tignoolajiyada aad isticmaasho, had iyo jeer waxaa jira hal nooc oo ah isha kaliya ee runta ah ee nidaamka hoose - ama, ugu yaraan, waa inaan ku dadaalnaa tan oo aan ka fogaano jahwareerka ganacsiga, halkaas oo "runtu" ay tahay meel kasta oo aan hal mar la arag. . Wax walba aad ayey uga fududaan karaan. Haddii aad kaliya ku beddelanayso faylasha XML nidaam kale, kaliya isticmaal XSD. Ka eeg INFORMATION_SCHEMA-qaabka badan ee jOOQ oo qaab XML ah:
https://www.jooq.org/xsd/jooq-meta-3.10.0.xsd

  • XSD si fiican ayaa loo fahmay
  • XSD waxay si aad u wanaagsan u calaamaysaa nuxurka XML waxayna ogolaataa ansaxinta dhammaan luqadaha macmiilka
  • XSD si fiican ayaa loo qaabeeyey oo waxa uu leeyahay la socon kara gadaal
  • XSD waxaa loo tarjumi karaa koodka Java iyadoo la adeegsanayo XJC

Qodobka ugu dambeeya waa muhiim. Markaad la xiriirto nidaamka dibadda adoo isticmaalaya farriimaha XML, waxaan rabnaa inaan hubinno in fariimahayagu ay sax yihiin. Tani waa mid aad u fudud in la gaaro iyadoo la isticmaalayo JAXB, XJC iyo XSD. Waxay noqon doontaa waalli aad u weyn in loo maleynayo in, iyada oo la adeegsanayo habka naqshadeynta "Java first" halkaas oo aan ka dhigno fariimahayaga sida walxaha Java, in si isku mid ah loogu dhejin karo XML loona diro nidaam kale si loo isticmaalo. XML ee habkan loo soo saaray waxay noqon doontaa mid tayadeedu aad u liidato, aan sharci ahayn, oo ay adagtahay in la horumariyo. Haddii uu jiro heshiis heerka adeegga ah (SLA) ee is-dhex-galka noocaas ah, isla markiiba waanu isku rogi lahayn.

Run ahaantii, tani waa waxa had iyo jeer ku dhaca JSON APIs, laakiin taasi waa sheeko kale, waan murmi doonaa marka xigta...

Databases: waa isku shay

Markaad la shaqaynayso xog-ururinta, waxaad ogaanaysaa inay dhamaantood isku mid yihiin. Saldhigga ayaa iska leh xogtiisa waana inuu maamulaa nidaamka. Wax ka bedel kasta oo lagu sameeyo qorshaha waa in si toos ah loogu fuliyaa DDL si isha keliya ee runta loo cusboonaysiiyo.

Marka xog cusubi dhacdo, dhammaan macaamiishu waa inay sidoo kale cusboonaysiiyaan koobiyada moodalka. Macaamiisha qaarkood waxaa lagu qori karaa Java iyadoo la isticmaalayo jOOQ iyo Hibernate ama JDBC (ama labadaba). Macaamiisha kale waxaa lagu qori karaa Perl (waxaan u rajaynaynaa nasiib wacan), halka kuwa kalena lagu qori karo C #. Dhib malaha. Qaabka ugu muhiimsan wuxuu ku jiraa kaydka xogta. Moodooyinka la soo saaray iyadoo la isticmaalayo ORM-yada ayaa badiyaa tayadoodu liidataa, si liidata loo diiwaangeliyey, oo ay adag tahay in la horumariyo.

Markaa khalad ha samayn. Ha samayn khaladaad bilowgii hore. Ka shaqee database-ka. Dhis dhuumo la geeyo oo otomaatig noqon kara. Daar kombuyuutarrada koodka si ay u fududaato in la koobiyeeyo qaabka xogtaada oo lagu daadiyo macaamiisha. Oo jooji welwelka ku saabsan koronto-dhaliyeyaasha. Way fiican yihiin. Iyaga waxaad ku noqon doontaa wax soo saar badan. Kaliya waxaad u baahan tahay inaad waqti yar ku qaadato sidii aad u dejin lahayd bilowga hore - ka dibna sannado badan oo wax soo saar ah ayaa ku sugaya, taas oo samayn doonta taariikhda mashruucaaga.

Wali ha ii mahadcelin, hadhow.

Sharaxa

Si aad u caddaato: Maqaalkani sinaba uma doodo inaad u baahan tahay inaad leexiso nidaamka oo dhan (ie, domain, logic ganacsi, iwm., iwm.) si aad ugu habboonaato qaabka xogtaada. Waxa aan ku leeyahay maqaalkan waa in koodhka macmiilka ee la falgala kaydka macluumaadka waa inuu ku dhaqmaa habka kaydka xogta, si aanu lafteedu u soo saarin qaabka kaydka xogta ee heerka "class-first". Caqligani wuxuu badanaa ku yaalaa lakabka gelitaanka xogta ee macmiilkaaga.

Dhismayaasha laba-heer ah, kuwaas oo weli lagu ilaaliyo meelaha qaarkood, qaabka nidaamka noocan oo kale ah wuxuu noqon karaa midka kaliya ee suurtogalka ah. Si kastaba ha ahaatee, nidaamyada intooda badan lakabka gelitaanka xogta ayaa aniga iila muuqda "Subsystem" kaas oo soo koobaya qaabka xogta xogta.

Ka reeban

Waxaa jira waxyaabo ka reeban xeer kasta, waxaanan horeyba u sheegay in habka koodhka-koowaad iyo soo saarista koodhka ay mararka qaarkood noqon karaan kuwo aan habboonayn. Waa kuwan dhowr ka reeban oo noocaas ah (waxaa laga yaabaa inay jiraan kuwa kale):

  • Marka qorshaha aan la garanayn oo loo baahan yahay in la ogaado. Tusaale ahaan, waxaad tahay bixiye qalab ka caawiya isticmaalayaasha inay maraan jaantus kasta. Ugh Ma jiro jiil code halkan. Laakin wali, xog-ururinta ayaa marka hore timaada.
  • Marka ay tahay in wareeggu la soo saaro duulista si loo xalliyo dhibaatada qaar. Tusaalahani wuxuu u muuqdaa qaab wax yar oo cajiib ah qiimaha sifada qofka, tusaale ahaan, ma lihid nidaam si cad loo qeexay. Xaaladdan oo kale, inta badan xitaa ma hubin kartid in RDBMS ay ku habboon tahay.

Ka-reebis ahaan waa kuwo aan caadi ahayn. Inta badan kiisaska ku lug leh isticmaalka RDBMS, qorshaha hore ayaa loo yaqaan, wuxuu ku dhex jiraa RDBMS waana isha kaliya ee "runta", iyo dhammaan macaamiishu waa inay helaan nuqullo laga soo qaatay. Fikrad ahaan, waxaad u baahan tahay inaad isticmaasho koodhka dhaliyaha.

Source: www.habr.com

Add a comment