Beti uste izan dut programatzaile alferra programatzaile ona dela. Zergatik? Zeren eta langile gogor bati zerbait egiteko eskatu, bera joango da eta egingo du. Eta programatzaile alferrak 2-3 aldiz denbora gehiago emango du, baina harentzat egingo duen gidoia idatziko du. Baliteke hori lehen aldiz egiteko arrazoirik gabeko denbora luzea behar izatea, baina behin eta berriz eginkizunekin ikuspegi honek oso azkar irabaziko du. Programatzaile alferratzat dut nire burua. Hori zen hitzaurrea, orain ekin gaitezen.
Istorio bat
Duela urte batzuk pentsatu nuen nola hobetu nezakeen ingelesa. Literatura irakurtzea baino gauza hoberik ez zitzaidan burura. Irakurgailu elektroniko bat erosi, liburuak deskargatu eta irakurtzen hasi nintzen. Irakurtzen ari nintzen bitartean, hitz ezezagunekin topo egiten nuen. Berehala itzuli nituen irakurlearen barnean dauden hiztegiak erabiliz, baina ezaugarri bat nabaritu nuen: hitzak ez ziren gogoratu nahi. Orrialde batzuk geroago hitz honekin berriro topatu nuenean, %90eko probabilitatearekin berriro itzulpena behar nuen, eta hori gertatzen zen aldi bakoitzean. Ondorioa zen ez zela nahikoa irakurtzen ari zaren bitartean hitz ezezagunak itzultzea, beste zerbait egin behar duzula. Aukera aproposa litzateke eguneroko bizitzan sartzea eta erabiltzen hastea, baina ez naiz ingelesez hitz egiten den herrialde batean bizi eta hori nekez da. Orduan gogoratu nintzen behin irakurri nuela .
Zer da eta zerekin jaten da? Laburbilduz, hau dago , Wikipediako aipamen gehiago:
Dagoeneko lehen orduan, jasotako informazio guztiaren %60a ahazten da; memorizatu eta 10 ordura, ikasitakoaren %35 memorian geratzen da. Ondoren, ahazteko prozesua poliki-poliki doa, eta 6 egun igaro ondoren hasieran ikasitako silaben kopuru osoaren % 20 inguru geratzen da memorian, eta kopuru bera hilabete igaro ondoren.
Eta ondorioa hemendik
Kurba horretatik abiatuta atera daitezkeen ondorioak hauek dira: memorizazio eraginkorra izateko beharrezkoa da memorizatutako materiala errepikatzea.
Beraz, ideia bat bururatu zitzaigun .
Erabat doako eta kode irekiko programa bat da, tartekaturiko errepikapenaren ideia ezartzen duena. Besterik gabe, ordenagailuz egindako flash-txartelek galdera bat dute alde batean eta erantzuna bestean. Galderak/erantzunak ohikoak erabiliz egin ditzakezunez html/css/javascript, orduan esan dezakegu benetan mugarik gabeko aukerak dituela. Horrez gain, bereziekin zabalgarria da , eta horietako bat oso baliagarria izango zaigu aurrerantzean.
Eskuz txartelak sortzea luzea, neketsua eta probabilitate handikoa da, pixka bat igaro ondoren zeregin hau ahaztuko zaizu, eta, beraz, uneren batean galdera hau egin nion neure buruari, posible al da zeregin hau automatizatzea. Erantzuna bai, dezakezu. Eta egin nuen. Berehala esango dut, gehiago da , baina erabil daitekeena. Erabiltzaileen interesa badago eta beste garatzaile batzuek parte hartzen badute, teknikoki analfabetoek ere erabil dezaketen produktu amaitu batera eraman daiteke. Orain, nire utilitatea erabiltzeak programazioaren ezagutza batzuk eskatzen ditu.
Programa erabiliz liburuak irakurtzen ditut . Kanpoko hiztegiak konektatzeko gaitasuna du, eta hitz bat itzultzen duzunean, itzultzeko deitu duzun hitza testu fitxategi batean gordetzen du. Hitz hauek itzultzea eta ANKI txartelak sortzea besterik ez da geratzen.
Hasieran itzulpenerako erabiltzen saiatu nintzen , etab. Baina gauzak ez ziren funtzionatu doako zerbitzuekin. Doako muga agortu nuen garapen prozesuan, gainera, lizentziaren baldintzen arabera, ez nuen hitzak cachean jartzeko eskubiderik. Noizbait konturatu nintzen hitzak neuk itzuli behar nituela. Ondorioz, modulu bat idatzi zen konekta zaitezke eta nork daki nola bihurtu HTML formatua.
Hauxe da hiztegiko sarrera bat *-n. Html, nire aukera aukerarekin alderatuta

Hiztegi konektatuetan hitz bat bilatu aurretik, hona ekartzen dut liburutegia erabiliz . Izan ere, liburutegi hau dela eta, Javan idazten hasi nintzen eta jatorrizko plana dena Javan idaztea zen, baina prozesuan liburutegia aurkitu nuen horrekin nahiko erraz exekutatu dezakezu nodejs-en Java kodea eta kode batzuk JavaScript-en idatzita daude. Liburutegi hau lehenago aurkitu izan banu, ez zen lerro bakar bat ere idatziko Javan. Prozesuan jaio zen beste alboko proiektu bat sortzea da sarean aurkitu zena * formatuan.chm, bihurtu eta jainkozko formara ekarri. Jatorrizko fitxategiaren egilea ezizena duen erabiltzailea bada yozhic Artikulu hau ikusten duenean, asko eskertzen diot egindako lanagatik; bere dokumentaziorik gabe, ziurrenik, ez nuen lortuko.
Beraz, ingelesez hitz bat daukat, bere hiztegiko sarrera formatuan *. Html, dena batu, hitzen zerrendatik ANKI artikuluak sortu eta ANKI datu-basean sartzea besterik ez da geratzen. Horretarako honako proiektu hau sortu da . Hitz zerrenda bat har dezake sarrera gisa, itzuli, ANKI sortu *. Html artikuluak eta erregistratu ANKI datu-basean. Artikuluaren amaieran nola erabiltzeko argibideak daude. Bitartean, bigarren istorioa da non espaziotutako errepikapenak erabilgarriak izan daitezkeen.
Bigarren istorioa.
Espezialitate gehiago/gutxiago baten bila dabiltzan pertsona guztiak, programatzaileak barne, elkarrizketa bat prestatu beharraren aurrean daude. Eguneroko praktikan erabiltzen ez dituzun elkarrizketetan galdetzen diren kontzeptu asko eta ahaztu egiten dira. Elkarrizketa bat prestatzerakoan, oharrak, liburu bat, kontsulta-liburu bat arakatzean, aurrez ezagutzen duzun informazioa bahetzeko denbora eta arreta asko behar direla aurrean izan nuen, beti ez baita agerikoa eta behar duzulako. irakurri arretaz zer den ulertzeko.ez du garrantzirik. Benetan errepikatu beharreko gai batera iristen zarenean, askotan gertatzen da jada nekatuta zaudela eta zure prestaketaren kalitateak jasaten duela. Noizbait pentsatu nuen, zergatik ez erabili ANKI txartelak horretarako ere? Adibidez, gai bati buruzko oharrak hartzerakoan, berehala sortu oharra galdera-erantzun moduan, eta gero errepikatzen duzunean, berehala jakingo duzu galdera honen erantzuna ezagutzen duzun ala ez.
Sortu zen arazo bakarra galderak idaztea oso luzea eta neketsua zela izan zen. Prozesua errazteko, proiektua bihurtzeko funtzionaltasuna gehitu dut testua ANKI txarteletan. Behar duzun guztia fitxategi handi bat idaztea da, zeinetan galderak eta erantzunak aldez aurretik zehaztutako karaktere-sekuentzia batekin markatuko diren, eta horren bidez analizatzaileak galdera non dagoen eta erantzuna non dagoen ulertuko du.
Fitxategi hau sortu ondoren, data2anki exekutatzen duzu eta ANKI txartelak sortzen ditu. Jatorrizko fitxategia editatzeko eta partekatzeko erraza da, dagozkion txartelak ezabatu eta programa berriro exekutatu besterik ez duzu behar, eta bertsio berri bat sortuko da.
Instalazioa eta erabilera
ANKI + AnkiConnect instalatzen
- Deskargatu ANKI hemendik:
- Instalatu AnkiConnect plugina:
Instalazio-
- Deskargatu github biltegitik
git clone https://github.com/anatoly314/data2anki - Instalatu menpekotasunak
cd data2anki && npm install - Deskargatu java menpekotasunak
- Despaketatzea jar-dependencies.zip eta jarri bere edukia data2anki/java/jars
- Deskargatu github biltegitik
Erabili hitzak itzultzeko:
Fitxategian data2anki/config.json:
klabean modua sartu balioa dsl2anki
klabean modules.dsl.anki.deckName и modules.dsl.anki.modelName horren arabera idatzi и (txartelak sortu aurretik sortu behar da). Momentuz eredu mota bakarrik onartzen da Oinarrizko:
Aurrealdeko eta Atzeko eremuak ditu eta txartel bat sortuko du. Aurrean sartzen duzun testua txartelaren aurrealdean agertuko da, eta Atzean sartzen duzun testua txartelaren atzealdean.
non dago jatorrizko hitza? Aurrealdeko eremua, eta itzulpena bertan izango da Atzeko eremua.
Ez dago arazorik laguntza gehitzeko Oinarrizko txartela (eta alderantzikatua), non hitzaren eta itzulpenaren alderantzizko txartel bat sortuko den, non itzulpenean oinarrituta jatorrizko hitza gogoratu beharko duzu. Behar duzun guztia denbora eta gogoa da.
klabean modules.dsl.dictionariesPath erregistratu matrize bat konektatuta * batekin.dsl hiztegiak. Konektatutako hiztegi bakoitza hiztegi-fitxategiak formatuaren arabera kokatzen diren direktorio bat da:
klabean modules.dsl.wordToTranslatePath sartu itzuli nahi duzun hitzen zerrendaren bidea.
- Abiarazi ANKI aplikazioa martxan dagoela
node data2ankiindex.js - IRABAZI!!!
Markdownetik txartelak sortzeko erabilerak
Fitxategian data2anki/config.json:
- klabean modua sartu balioa markdown2anki
- klabean modules.markdown.anki.deckName и modules.dsl.anki.modelName horren arabera idatzi и (txartelak sortu aurretik sortu behar da). Izan ere markdown2anki modua soilik eredu mota onartzen da Oinarrizko.
klabean moduluak.markdown.hautatzaileak.startQuestionSelectors и moduluak.markdown.hautatzaileak.startAnswerSelectors galdera eta erantzunaren hasiera markatzen dituzun hautatzaileak idazten dituzu, hurrenez hurren. Hautatzailea duen lerroa ez da analizatuko eta ez da txartelean amaituko; analizatzailea hurrengo lerrotik hasiko da lanean.
Adibidez, galdera/erantzun txartel hau:

Markdown-en honela izango da:
#GALDERA# ## Galdera 5. Idatzi ondoko sintaxiarekin deitzen denean ondo funtzionatuko duen mul funtzio bat. ```javascript console.log(mul(2)(3)(4)); // irteera : 24 console.log(mul(4)(3)(4)); // irteera : 48 ``` #ERANTZUNA# Jarraian kodea eta funtzionamenduari buruzko azalpena emanez: ```javascript function mul (x) { return function (y) { // anonimo funtzioa return function (z) { // funtzio anonimoa itzuli x * y * z; }; }; } ``` Hemen `mul` funtzioak lehen argumentua onartzen du eta bigarren parametroa hartzen duen funtzio anonimoa itzultzen du eta hirugarren parametroa hartzen duen funtzio anonimoa itzultzen du eta jarraian pasatzen ari diren argumentuen biderkadura itzultzen du. barrualdean kanpoko funtzioaren aldagairako sarbidea du eta funtzioa lehen klaseko objektua da, beraz, funtzioak ere itzuli eta beste funtzio batean argumentu gisa pasa dezan. - Funtzio bat Objektu motako instantzia bat da - Funtzio batek propietateak izan ditzake eta bere eraikitzaile-metodorako esteka bat du - Funtzio bat aldagai gisa gorde daiteke - Funtzio bat parametro gisa pasa daiteke beste funtzio batera - Funtzio bat izan daiteke beste funtzio batetik itzuli daHemendik hartutako adibidea:
Proiektuaren karpetan adibideekin fitxategi bat ere badago
examples/markdown2anki-example.md- klabean modules.markdown.pathToFile
idatzi fitxategiaren bidea non *.md galdera/erantzun fitxategia
- Abiarazi ANKI aplikazioa martxan dagoela
node data2ankiindex.js - IRABAZI!!!
Hau da telefono mugikor batean nolakoa den:

Emaitza
ANKIren mahaigaineko bertsioan jasotako txartelak ANKI hodeiarekin sinkronizatzen dira modu ezin hobean (100 MB doan gehienez), eta gero edonon erabil ditzakezu. Bezeroak daude... Android и iPhone, arakatzaile batean ere erabil daiteke. Beraz, denbora baduzu, Facebooken helbururik gabe nabigatu edo Instagramen katuak ikusi beharrean, zerbait berria ikas dezakezu.
Epilogoa
Aipatu dudan bezala, hau da, erabil dezakezun POC lan bat baino, amaitutako produktu bat baino. DSL analizatzaile estandarraren % 30 inguru ez dago ezarrita, eta, beraz, , berridazteko ideia ere badago Ikusteko Javascript-a, “koherentzia” nahi dudalako, eta gainera, orain ez dago oso ondo idatzita. Orain analizatzailea zuhaitz bat eraikitzen ari da, baina nire ustez hau ez da beharrezkoa eta ez du kodea zaildu behar. IN markdown2anki moduan, irudiak ez dira analizatzen. Pixkanaka mozten saiatuko naiz, baina niretzat idazten dudanez, nik neuk zapalduko ditudan arazoak konponduko ditut lehenik, baina norbaitek lagundu nahi badu, ongi etorria zarete. Programari buruzko galderarik baduzu, pozik lagunduko dizut gai irekien bidez dagozkion proiektuetan. Idatzi hemen beste kritika eta iradokizun batzuk. Proiektu hau norbaitentzat erabilgarria izatea espero dut.
PS Akatsen bat nabaritzen baduzu (eta, tamalez, badaude), idatzi idazu mezu pertsonal batean, dena zuzenduko dut.
Iturria: www.habr.com

