මම නිතරම විශ්වාස කළේ කම්මැලි ක්රමලේඛකයෙක් හොඳ ක්රමලේඛකයෙකු බවයි. ඇයි? මොකද මහන්සි වෙලා වැඩ කරන කෙනෙක්ට දෙයක් කරන්න කියලා, එයා ගිහින් ඒක කරනවා. කම්මැලි ක්රමලේඛකයෙකු 2-3 ගුණයකින් වැඩි කාලයක් ගත කරයි, නමුත් ඔහු වෙනුවෙන් එය කරන පිටපතක් ලියයි. පළමු වරට මෙය කිරීමට අසාධාරණ ලෙස දිගු කාලයක් ගත විය හැකිය, නමුත් නැවත නැවත කරන කාර්යයන් සමඟ මෙම ප්රවේශය ඉතා ඉක්මනින් ගෙවනු ඇත. මම කම්මැලි වැඩසටහන්කරුවෙකු ලෙස සලකමි. ඒක තමයි පූර්විකාව, දැන් අපි කතාවට බහිමු.
එක කතාව
මීට වසර කිහිපයකට පෙර මම මගේ ඉංග්රීසි දියුණු කරන්නේ කෙසේදැයි කල්පනා කළෙමි. සාහිත්යය කියවීම තරම් හොඳ දෙයක් මතකයට ආවේ නැත. මම ඉලෙක්ට්රොනික කියවනයක් මිල දී ගෙන පොත් බාගත කර කියවීමට පටන් ගතිමි. කියවගෙන යද්දි මට නුහුරු නුපුරුදු වදන් එනවා. මම වහාම පාඨකයා තුළ ගොඩනඟන ලද ශබ්දකෝෂ භාවිතයෙන් ඒවා පරිවර්තනය කළ නමුත් මම එක් අංගයක් දුටුවෙමි: වචන මතක තබා ගැනීමට අවශ්ය නොවේ. පිටු කීපයකට පසුව නැවතත් මෙම වචනය හමු වූ විට, 90% සම්භාවිතාවක් සහිතව මට නැවතත් පරිවර්තනය අවශ්ය වූ අතර මෙය සෑම අවස්ථාවකම සිදු විය. නිගමනය වූයේ කියවීමේදී නුහුරු නුපුරුදු වචන පරිවර්තනය කිරීම පමණක් ප්රමාණවත් නොවන අතර ඔබ වෙනත් දෙයක් කළ යුතු බවයි. කදිම විකල්පය වනුයේ එය එදිනෙදා ජීවිතයට හඳුන්වා දී එය භාවිතා කිරීම ආරම්භ කිරීමයි, නමුත් මම ඉංග්රීසි කතා කරන රටක ජීවත් නොවන අතර මෙය කළ නොහැක්කකි. එතකොටයි මතක් උනේ මම එක පාරක් කියෙව්වා කියලා .
එය කුමක්ද සහ එය අනුභව කරන්නේ කුමක් ද? කොටින්ම මෙහෙමත් තියෙනවා , විකිපීඩියාවෙන් තවදුරටත් උපුටා ගැනීම:
දැනටමත් පළමු පැය තුළ, ලැබුණු සියලුම තොරතුරු වලින් 60% ක් දක්වා අමතක වී ඇත; කටපාඩම් කිරීමෙන් පැය 10 කට පසුව, ඉගෙන ගත් දෙයින් 35% ක් මතකයේ පවතී. එවිට අමතක වීමේ ක්රියාවලිය සෙමින් සිදුවන අතර දින 6 කට පසු මුලදී ඉගෙන ගත් සම්පූර්ණ අක්ෂර සංඛ්යාවෙන් 20% ක් පමණ මතකයේ පවතින අතර මාසයකට පසු එම ප්රමාණයම මතකයේ පවතී.
සහ මෙතැන් සිට නිගමනය
මෙම වක්රය මත පදනම්ව ලබා ගත හැකි නිගමන වන්නේ ඵලදායී කටපාඩම් කිරීම සඳහා මතක තබා ගත් ද්රව්ය නැවත නැවත කිරීම අවශ්ය වේ.
ඉතින් අපිට අදහසක් ආවා .
පරතරය පුනරාවර්තනය කිරීමේ අදහස ක්රියාත්මක කරන සම්පූර්ණයෙන්ම නොමිලේ සහ විවෘත මූලාශ්ර වැඩසටහනකි. සරලව කිවහොත්, පරිගණකගත ෆ්ලෑෂ් කාඩ්පත් එක පැත්තකින් ප්රශ්නයක් සහ අනෙක් පැත්තෙන් පිළිතුරක් ඇත. ඔබට සාමාන්ය භාවිතයෙන් ප්රශ්න / පිළිතුරු කළ හැකි බැවින් html/css/javascript, එවිට එය සැබවින්ම අසීමිත හැකියාවන් ඇති බව අපට පැවසිය හැකිය. මීට අමතරව, එය විශේෂ සමග පුළුල් කළ හැකිය , සහ ඒවායින් එකක් අනාගතයේදී අපට ඉතා ප්රයෝජනවත් වනු ඇත.
අතින් කාඩ්පත් සෑදීම දිගු, වෙහෙසකර සහ ඉහළ සම්භාවිතාවක් සහිතව, ටික වේලාවකට පසු ඔබට මෙම කාර්යය අමතක වනු ඇත, එබැවින් යම් අවස්ථාවක දී මම මගෙන් ප්රශ්නය ඇසුවෙමි, මෙම කාර්යය ස්වයංක්රීය කළ හැකිද යන්න. පිළිතුර ඔව්, ඔබට පුළුවන්. ඒ වගේම මම ඒක කළා. මම වහාම කියන්නම්, එය වැඩියි , නමුත් භාවිතා කළ හැකි. පරිශීලකයින්ගෙන් සහ වෙනත් සංවර්ධකයින්ගේ උනන්දුවක් තිබේ නම්, එය තාක්ෂණික වශයෙන් නූගත් පරිශීලකයින්ට පවා භාවිතා කළ හැකි නිමි භාණ්ඩයක් වෙත ගෙන යා හැකිය. දැන්, මගේ උපයෝගීතාව භාවිතා කිරීම සඳහා වැඩසටහන්කරණය පිළිබඳ යම් දැනුමක් අවශ්ය වේ.
මම වැඩසටහන භාවිතයෙන් පොත් කියෙව්වා . බාහිර ශබ්දකෝෂ සම්බන්ධ කිරීමේ හැකියාව එයට ඇති අතර, ඔබ වචනයක් පරිවර්තනය කරන විට, ඔබ පරිවර්තනය සඳහා කැඳවූ වචනය පෙළ ගොනුවකට සුරකියි. ඉතිරිව ඇත්තේ මෙම වචන පරිවර්තනය කර ANKI කාඩ්පත් නිර්මාණය කිරීම පමණි.
මුලින්ම මම පරිවර්තනය සඳහා භාවිතා කිරීමට උත්සාහ කළා , ආදිය නමුත් නොමිලේ සේවා සමඟ දේවල් සාර්ථක වූයේ නැත. සංවර්ධන ක්රියාවලියේදී මම නිදහස් සීමාව අවසන් කළෙමි, ඊට අමතරව, බලපත්රයේ නියමයන්ට අනුව, වචන හැඹිලි කිරීමට මට අයිතියක් නොතිබුණි. යම් අවස්ථාවක දී මම වචන පරිවර්තනය කළ යුතු බව මට වැටහුණා. එහි ප්රතිඵලයක් වශයෙන්, මොඩියුලයක් ලියා ඇත ඔබට සම්බන්ධ විය හැකි සහ ඒවා බවට පරිවර්තනය කරන්නේ කෙසේදැයි දන්නේ කවුද? HTML ආකෘතිය.
ශබ්දකෝෂ ඇතුළත් කිරීමක් පෙනෙන්නේ මෙයයි *.html, මගේ විකල්පය විකල්පයට සාපේක්ෂව

සම්බන්ධිත ශබ්දකෝෂවල වචනයක් සෙවීමට පෙර, මම එය ගෙන එන්නෙමි පුස්තකාලය භාවිතා කරමින් . ඇත්ත වශයෙන්ම, මෙම පුස්තකාලය නිසා මම ජාවා වලින් ලිවීමට පටන් ගත් අතර එහි මුල් සැලැස්ම වූයේ ජාවා වලින් සියල්ල ලිවීමයි, නමුත් ක්රියාවලියේදී මට පුස්තකාලය හමු විය. ඔබට nodejs වෙතින් ජාවා කේතය සාපේක්ෂව පහසුවෙන් ක්රියාත්මක කළ හැකි අතර සමහර කේතයන් JavaScript වලින් ලියා ඇත. මම මේ පුස්තකාලය කලින් සොයා ගත්තා නම්, ජාවා වලින් එක පේළියක්වත් ලියන්නේ නැත. එම ක්රියාවලිය තුළ බිහි වූ තවත් පැත්තක ව්යාපෘතියක් වන්නේ නිර්මාණයයි ආකෘතියෙන් ජාලයේ සොයා ගන්නා ලදී *.chm, පරිවර්තනය කර දිව්ය ස්වරූපයට ගෙන එන ලදී. මුල් ගොනුවේ කතුවරයා අන්වර්ථ නාමයෙන් පරිශීලකයෙකු නම් yozhic ඔහු මෙම ලිපිය දකින විට, ඔහු කළ කාර්යයට මම ඔහුට බෙහෙවින් ස්තූතිවන්ත වෙමි; ඔහුගේ ලියකියවිලි නොමැතිව, මම බොහෝ විට සාර්ථක නොවනු ඇත.
ඉතින්, මට ඉංග්රීසි භාෂාවෙන් වචනයක් තිබේ, එහි ශබ්දකෝෂය ආකෘතියෙන් ඇතුළත් කරන්න *.html, ඉතිරිව ඇත්තේ සියල්ල එකට එකතු කිරීම, වචන ලැයිස්තුවෙන් ANKI ලිපි සාදා ඒවා ANKI දත්ත ගබඩාවට ඇතුළත් කිරීම පමණි. මේ සඳහා පහත ව්යාපෘතිය නිර්මාණය කරන ලදී . එයට ආදානය, පරිවර්තනය, ANKI නිර්මාණය ලෙස වචන ලැයිස්තුවක් ගත හැකිය *.html ලිපි සහ ඒවා ANKI දත්ත ගබඩාවේ සටහන් කරන්න. ලිපියේ අවසානයේ එය භාවිතා කරන්නේ කෙසේද යන්න පිළිබඳ උපදෙස් තිබේ. මේ අතර, දෙවන කතාව වන්නේ පරතරය සහිත පුනරාවර්තන ප්රයෝජනවත් විය හැකි ස්ථානයයි.
දෙවෙනි කතාව.
ක්රමලේඛකයින් ඇතුළුව වැඩි/අඩු සුදුසුකම් ලත් විශේෂත්වයක් සොයන සියලුම පුද්ගලයින් සම්මුඛ පරීක්ෂණයක් සඳහා සූදානම් වීමේ අවශ්යතාවයට මුහුණ දෙයි. සම්මුඛ පරීක්ෂණවලදී අසන බොහෝ සංකල්ප ඔබ එදිනෙදා භාවිතයේදී භාවිතා නොකරන අතර ඒවා අමතක වී යයි. සම්මුඛ පරීක්ෂණයකට සූදානම් වන විට, සටහන්, පොතක්, සමුද්දේශ පොතක් පෙරළන විට, ඔබ දැනටමත් දන්නා තොරතුරු සෙවීමට බොහෝ කාලයක් හා අවධානයක් අවශ්ය වන බව මට මුහුණ දීමට සිදු විය, මන්ද එය සැමවිටම නොපැහැදිලි වන අතර ඔබට එය කළ යුතුය. එය කුමක් දැයි තේරුම් ගැනීමට එය හොඳින් කියවන්න. ඔබ සැබවින්ම පුනරාවර්තනය කළ යුතු මාතෘකාවකට පැමිණෙන විට, බොහෝ විට සිදු වන්නේ ඔබ දැනටමත් වෙහෙසට පත්ව සිටින අතර ඔබේ සූදානමේ ගුණාත්මක භාවය දුක් විඳීමයි. වෙලාවකට මට හිතුනා ඇයි මේකටත් ANKI කාඩ් පාවිච්චි කරන්නේ නැත්තේ කියලා. උදාහරණයක් ලෙස, මාතෘකාවක් පිළිබඳ සටහන් තැබීමේදී, වහාම ප්රශ්න සහ පිළිතුරු ආකාරයෙන් සටහනක් සාදන්න, ඉන්පසු ඔබ එය නැවත නැවත කරන විට, ඔබ මෙම ප්රශ්නයට පිළිතුර දන්නවාද නැද්ද යන්න වහාම දැන ගනු ඇත.
පැන නැඟුණු එකම ගැටළුව වූයේ ප්රශ්න ටයිප් කිරීම ඉතා දිගු හා වෙහෙසකාරී වීමයි. ක්රියාවලිය පහසු කිරීම සඳහා, මම පරිවර්තන ක්රියාකාරීත්වය එක් කළ ව්යාපෘතිය ANKI කාඩ්පත්වල පෙළ. ඔබට අවශ්ය වන්නේ එක් විශාල ගොනුවක් ලිවීමයි, එහි ප්රශ්න සහ පිළිතුරු කලින් තීරණය කළ අක්ෂර අනුපිළිවෙලකින් සලකුණු කරනු ලැබේ, එමඟින් ප්රශ්නය කොතැනද සහ පිළිතුර කොතැනද යන්න විග්රහ කරන්නාට වැටහෙනු ඇත.
මෙම ගොනුව සෑදූ පසු, ඔබ data2anki ධාවනය කරන අතර එය ANKI කාඩ්පත් නිර්මාණය කරයි. මුල් ගොනුව සංස්කරණය කිරීමට සහ බෙදා ගැනීමට පහසුය, ඔබට අවශ්ය වන්නේ අදාළ කාඩ්පත (ය) මකා නැවත වැඩසටහන ක්රියාත්මක කළ යුතු අතර නව අනුවාදයක් සාදනු ලැබේ.
ස්ථාපනය සහ භාවිතය
ANKI + AnkiConnect ස්ථාපනය කිරීම
- ANKI මෙතැනින් බාගන්න:
- AnkiConnect ප්ලගිනය ස්ථාපනය කරන්න:
ස්ථාපනය
- බාගත github ගබඩාවෙන්
git clone https://github.com/anatoly314/data2anki - පරායත්තතා ස්ථාපනය කරන්න
cd data2anki && npm install - ජාවා පරායත්තතා බාගන්න
- අසුරනවා jar-Dependency.zip සහ එහි අන්තර්ගතය තබන්න data2anki/java/jars
- බාගත github ගබඩාවෙන්
වචන පරිවර්තනය කිරීමට භාවිතා කරන්න:
ගොනුවේ data2anki/config.json:
යතුරේ මාදිලිය අගය ඇතුලත් කරන්න dsl2anki
යතුරේ modules.dsl.anki.deckName и modules.dsl.anki.modelName ඒ අනුව ලියන්න и (කාඩ්පත් සෑදීමට පෙර දැනටමත් නිර්මාණය කර තිබිය යුතුය). දැනට සහය දක්වන්නේ ආදර්ශ වර්ගයට පමණි මූලික:
ඉදිරිපස සහ පසුපස ක්ෂේත්ර ඇති අතර, එක් කාඩ්පතක් සාදනු ඇත. ඔබ ඉදිරිපසින් ඇතුළු කරන පෙළ කාඩ්පතේ ඉදිරිපස දිස්වනු ඇති අතර, ඔබ පසුපසට ඇතුළත් කරන පෙළ කාඩ්පතේ පිටුපස දිස්වනු ඇත.
මුල් වචනය කොහෙද? ඉදිරිපස ක්ෂේත්රය, සහ පරිවර්තනය වනු ඇත පසුපස ක්ෂේත්රය.
සහාය එකතු කිරීමට කිසිදු ගැටළුවක් නොමැත මූලික (සහ ආපසු හැරවූ කාඩ්පත), වචනය සහ පරිවර්තනය සඳහා ප්රතිලෝම කාඩ්පතක් සාදනු ලබන අතර, පරිවර්තනය මත පදනම්ව ඔබට මුල් වචනය මතක තබා ගත යුතුය. ඔබට අවශ්ය වන්නේ කාලය සහ ආශාවයි.
යතුරේ modules.dsl.dictionariesPath සම්බන්ධිත අරාවක් ලියාපදිංචි කරන්න *.dsl ශබ්දකෝෂ. සම්බන්ධිත සෑම ශබ්දකෝෂයක්ම ආකෘතියට අනුකූලව ශබ්දකෝෂ ගොනු පිහිටා ඇති නාමාවලියකි:
යතුරේ modules.dsl.wordToTranslatePath ඔබට පරිවර්තනය කිරීමට අවශ්ය වචන ලැයිස්තුවට මාර්ගය ඇතුල් කරන්න.
- ANKI යෙදුම ධාවනය සමඟ දියත් කරන්න
node data2ankiindex.js - ලාභයක්!!!
සලකුණු වලින් කාඩ්පත් සෑදීම සඳහා භාවිතා කරයි
ගොනුවේ data2anki/config.json:
- යතුරේ මාදිලිය අගය ඇතුලත් කරන්න markdown2anki
- යතුරේ modules.markdown.anki.deckName и modules.dsl.anki.modelName ඒ අනුව ලියන්න и (කාඩ්පත් සෑදීමට පෙර දැනටමත් නිර්මාණය කර තිබිය යුතුය). සදහා markdown2anki මාදිලිය පමණක් ආකෘති වර්ගය සහය දක්වයි මූලික.
යතුරේ modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors ඔබ පිළිවෙලින් ප්රශ්නයේ සහ පිළිතුරේ ආරම්භය සලකුණු කරන තේරීම් කාරක ලියන්න. තේරීම්කාරකය සමඟ ඇති රේඛාව විග්රහ නොකරනු ඇති අතර කාඩ්පතෙහි අවසන් නොවනු ඇත; විග්රහකය ඊළඟ පේළියේ සිට ක්රියා කිරීමට පටන් ගනී.
උදාහරණයක් ලෙස, මෙම ප්රශ්න/පිළිතුරු කාඩ්පත:

සලකුණු කිරීමේදී එය මේ ආකාරයෙන් පෙනෙනු ඇත:
#ප්රශ්නය# ## ප්රශ්නය 5. පහත වාක්ය ඛණ්ඩය සමඟ ක්රියා කරන විට නිසි ලෙස ක්රියා කරන බහු ශ්රිතයක් ලියන්න. ```javascript console.log(mul(2)(3)(4)); // ප්රතිදානය : 24 console.log(mul(4)(3)(4)); // ප්රතිදානය : 48 ``` #පිළිතුර# එය ක්රියා කරන ආකාරය පිළිබඳ පැහැදිලි කිරීම සමඟ කේතය පහත දැක්වේ: ```javascript ශ්රිතය mul (x) { return function (y) { // anonymous function return function (z) { // නිර්නාමික ශ්රිතය ආපසු x * y * z; }; }; } ``` මෙහි `mul` ශ්රිතය පළමු තර්කය පිළිගෙන දෙවන පරාමිතිය ගන්නා නිර්නාමික ශ්රිතය ආපසු ලබා දෙන අතර තුන්වන පරාමිතිය ගන්නා නිර්නාමික ශ්රිතය ආපසු ලබා දෙන අතර ජාවාස්ක්රිප්ට් ශ්රිතයෙන් අනුක්රමිකව සම්මත වන තර්ක ගුණ කිරීම ලබා දෙයි. ඇතුලට බාහිර ශ්රිත විචල්යයට ප්රවේශය ඇති අතර ශ්රිතය පළමු පන්තියේ වස්තුව වන බැවින් එය ශ්රිතයෙන් ද ආපසු ලබා දී වෙනත් ශ්රිතයක තර්කයක් ලෙස සම්මත කළ හැක. - ශ්රිතයක් යනු වස්තු වර්ගයෙහි නිදසුනකි - ශ්රිතයකට ගුණ තිබිය හැකි අතර එහි කන්ස්ට්රක්ටර් ක්රමයට නැවත සබැඳියක් තිබිය හැක - ශ්රිතයක් විචල්ය ලෙස ගබඩා කළ හැක - ශ්රිතයක් වෙනත් ශ්රිතයකට පරාමිතියක් ලෙස ගමන් කළ හැක - ශ්රිතයක් විය හැක. වෙනත් කාර්යයකින් ආපසු පැමිණියේයඋදාහරණය මෙතැනින් උපුටා ගන්නා ලදී:
ව්යාපෘති ෆෝල්ඩරයේ උදාහරණ සහිත ගොනුවක් ද ඇත
examples/markdown2anki-example.md- යතුරේ modules.markdown.pathToFile
ගොනුවට යන මාර්ගය ලියන්න *.md ප්රශ්න/පිළිතුරු ගොනුව
- ANKI යෙදුම ධාවනය සමඟ දියත් කරන්න
node data2ankiindex.js - ලාභයක්!!!
ජංගම දුරකථනයක පෙනුම මෙයයි:

ප්රතිඵලය
ANKI ඩෙස්ක්ටොප් අනුවාදයට ලැබෙන කාඩ්පත් ANKI වලාකුළ සමඟ බාධාවකින් තොරව සමමුහුර්ත වේ (100 MB දක්වා නොමිලේ), ඉන්පසු ඔබට ඒවා ඕනෑම තැනක භාවිතා කළ හැකිය. සඳහා සේවාදායකයින් සිටී Android и iPhone, බ්රව්සරයකත් භාවිතා කළ හැකියි. ඉතින්, ඔබට මරා දැමීමට කාලය තිබේ නම්, අරමුණක් නොමැතිව ෆේස්බුක් හරහා අනුචලනය කිරීම හෝ ඉන්ස්ටග්රෑම් හි බළලුන් දෙස බැලීම වෙනුවට, ඔබට අලුත් දෙයක් ඉගෙන ගත හැකිය.
එපිලේජ්
මා සඳහන් කළ පරිදි, මෙය නිමි භාණ්ඩයකට වඩා ඔබට භාවිතා කළ හැකි වැඩ කරන POC ය. DSL විග්රහ කිරීමේ ප්රමිතියෙන් 30% ක් පමණ ක්රියාත්මක නොවේ, එබැවින්, , ඒක නැවත ලියන්නත් අදහසක් තියෙනවා ජාවාස්ක්රිප්ට්, මට "අනුකූලත්වය" අවශ්ය නිසා, සහ අමතරව, දැන් එය ඉතා ප්රශස්ත ලෙස ලියා නැත. දැන් විග්රහ කරන්නා ගසක් ගොඩනඟයි, නමුත් මගේ මතය අනුව මෙය අනවශ්ය වන අතර කේතය සංකීර්ණ කිරීමට අවශ්ය නොවේ. තුල markdown2anki මාදිලිය, පින්තූර විග්රහ කර නැත. මම ටිකෙන් ටික කපා ගැනීමට උත්සාහ කරමි, නමුත් මම මා වෙනුවෙන් ලියන බැවින්, මම මුලින්ම මා විසින්ම පියවර ගන්නා ගැටළු මම විසඳමි, නමුත් යමෙකුට උදව් කිරීමට අවශ්ය නම්, ඔබ සාදරයෙන් පිළිගනිමි. ඔබට වැඩසටහන පිළිබඳ ප්රශ්න ඇත්නම්, අදාළ ව්යාපෘතිවල විවෘත ගැටළු හරහා උදව් කිරීමට මම සතුටු වෙමි. වෙනත් විවේචන සහ යෝජනා මෙහි ලියන්න. මෙම ව්යාපෘතිය යමෙකුට ප්රයෝජනවත් වනු ඇතැයි මම බලාපොරොත්තු වෙමි.
PS ඔබ කිසියම් දෝෂයක් දුටුවහොත් (සහ, අවාසනාවකට මෙන්, සමහරක් තිබේ), පුද්ගලික පණිවිඩයකින් මට ලියන්න, මම සියල්ල නිවැරදි කරමි.
මූලාශ්රය: www.habr.com

