හොඳ ක්‍රමලේඛකයෙකු පිළිබඳ ටොවල්ඩ්ස්ගේ උපුටා දැක්වීම [සංවෘත]


238

අහම්බෙන් මම ලිනස් ටොවල්ඩ්ස්ගේ පහත දැක්වෙන උපුටා දැක්වීමට බාධා කළෙමි:

"නරක ක්‍රමලේඛකයින් කේතය ගැන කරදර වේ. හොඳ ක්‍රමලේඛකයින් දත්ත ව්‍යුහයන් සහ ඒවායේ සම්බන්ධතා ගැන කරදර වේ."

මම පසුගිය දින කිහිපය තුළ ඒ ගැන කල්පනා කර ඇති අතර මම තවමත් ව්‍යාකූල වී සිටිමි (එය බොහෝ විට හොඳ සලකුණක් නොවේ), එබැවින් මට පහත සඳහන් කරුණු සාකච්ඡා කිරීමට අවශ්‍ය විය:

  • මෙය කළ හැකි / අර්ථවත් කරන අර්ථ නිරූපණය කුමක්ද?
  • එයින් යෙදිය හැකි / ඉගෙන ගත හැක්කේ කුමක්ද?

18
මම හිතන්නේ මෙම ප්‍රශ්නයට බොහෝ දුරට සමාන පිළිතුරු වල පිළිතුරු තිබිය හැකිය. කෙසේ වෙතත් එය හොඳ ප්‍රශ්නයකි. මම ඒ උපුටා දැක්වීමට කැමතියි. භාෂා මාරු කිරීම ගැන කරදර වන ක්‍රමලේඛකයින් මට නොතේරෙන්නේ මන්දැයි එය ප්‍රකාශ කරයි. එය කලාතුරකින් වැඩසටහනක වැදගත් වන භාෂාවයි, එය දත්ත ව්‍යුහයන් සහ ඒවා සම්බන්ධ වන ආකාරය.
රයන් කිනල්

5
සමහර විට ඔබ දත්ත ව්‍යුහයන් “අලංකාර” කිරීමට කාලය ගත කරන්නේ නම් මෙම දත්ත ව්‍යුහයන් සමඟ කටයුතු කිරීම සඳහා කේතය කැටි කළ යුතු නොවේද? ටොවල්ඩ්ස්ගේ උපුටා දැක්වීමේ තේරුම දැන ගැනීමට මා ගොළු ය. :}
ක්‍රමලේඛක

3
YanRyanKinal නමුත් ඇත්ත වශයෙන්ම භාෂාව වැදගත් වන්නේ , සමහර දත්ත ව්‍යුහයන් සමඟ ගනුදෙනු කිරීම සහ සිතීම සැලකිය යුතු ලෙස පහසු කරවන බැවිනි. නිදසුනක් ලෙස, LISt විග්‍රහ කිරීම පිළිබඳ විශේෂ ize වූ සියලුම භාෂා ගැන හෝ වෙනත් භාෂාවලට අනවසරයෙන් ඇතුළුවිය යුතු දත්ත ව්‍යුහයන් සඳහා ස්වදේශීය සහාය ඇති භාෂාවන් ගැන සිතන්න (කට්ටල සහ විරල අරා මතකයට එයි).
කොජිරෝ

83
ටොවල්ඩ්ස් මේ ආකාරයෙන් තනිවම නොවේ: "ඔබේ ගැලීම් සටහන මට පෙන්වන්න සහ ඔබේ වගු සඟවන්න, එවිට මම දිගටම අබිරහස් වන්නෙමි. ඔබේ වගු මට පෙන්වන්න, මට සාමාන්‍යයෙන් ඔබේ ගැලීම් සටහන අවශ්‍ය නොවනු ඇත; එය පැහැදිලිව පෙනේ. " - ෆ්‍රෙඩ් බ ok ක්ස්, මිථ්‍යා මිනිසා-මාසය. "ඔබේ කේතය මට පෙන්වන්න සහ ඔබේ දත්ත ව්‍යුහයන් සඟවන්න. එවිට මම අබිරහස් වනු ඇත. ඔබේ දත්ත ව්‍යුහයන් මට පෙන්වන්න. මට සාමාන්‍යයෙන් ඔබේ කේතය අවශ්‍ය නොවනු ඇත. එය පැහැදිලිව පෙනෙනු ඇත." සහ "ස්මාර්ට් දත්ත ව්‍යුහයන් සහ ගොළු කේත අනෙක් පැත්තට වඩා බොහෝ සෙයින් ක්‍රියා කරයි." - එරික් එස්. රේමන්ඩ්, ද ආසන දෙව්මැදුර සහ බසාර්.
ජෝග් ඩබ් මිට්ටාග්

4
ලිනක්ස් කර්නලය අවුල් සහගත වන්නේ මන්දැයි මෙයින් පැහැදිලි වේ :)
l1x

Answers:


326

ඊට පෙර ටොවල්ඩ්ස් පැවසූ දේ සලකා බැලීමට එය උදව් වනු ඇත:

git ඇත්ත වශයෙන්ම සරල මෝස්තරයක් ඇති අතර ස්ථාවර හා සාධාරණ ලෙස ලේඛනගත දත්ත ව්‍යුහයන් ඇත. ඇත්ත වශයෙන්ම, මම ඔබේ කේතය අනෙක් පැත්තට වඩා දත්ත වටා සැලසුම් කිරීමේ විශාල යෝජකයෙක් වන අතර, එය තරමක් සාර්ථක වීමට එක් හේතුවක් යැයි මම සිතමි […] ඇත්ත වශයෙන්ම, වෙනස කියා සිටිමි නරක ක්‍රමලේඛකයෙකු සහ හොඳ අයෙකු අතර ඔහු තම කේතය හෝ දත්ත ව්‍යුහයන් වඩා වැදගත් ලෙස සලකන්නේද යන්න වේ.

ඔහු පවසන දෙය නම් හොඳ දත්ත ව්‍යුහයන් මඟින් කේතය සැලසුම් කිරීම හා නඩත්තු කිරීම ඉතා පහසු වන අතර හොඳම කේතයට දුර්වල දත්ත ව්‍යුහයන් සෑදිය නොහැකි බවයි.

ඔබ git උදාහරණය ගැන කල්පනා කරන්නේ නම්, බොහෝ අනුවාද පාලන පද්ධති නව විශේෂාංග සඳහා සහය දැක්වීම සඳහා ඒවායේ දත්ත ආකෘතිය සාපේක්ෂව නිතිපතා වෙනස් කරයි. නව අංගය ලබා ගැනීම සඳහා ඔබ උත්ශ්‍රේණිගත කරන විට, දත්ත සමුදාය පරිවර්තනය කිරීම සඳහා ඔබට බොහෝ විට යම් ආකාරයක මෙවලමක් ක්‍රියාත්මක කිරීමට සිදුවේ.

නිදසුනක් ලෙස, DVCS ප්‍රථම වරට ජනප්‍රිය වූ විට, බෙදා හරින ලද ආකෘතිය ගැන කුමක් දැයි බොහෝ දෙනෙකුට හඳුනාගත නොහැකි විය. පිළිතුර බෙදා දත්ත ව්යුහ හැර, අන් කිසිවක් වේ තිබූ සියලු වැඩ ක බලාපොරොත්තුව ඇති වීමට, ඊට වඩා හොඳ වෙන්න. එතැන් සිට මධ්‍යගත ඒකාබද්ධ කිරීමේ ඇල්ගොරිතම හසු වී ඇති බව මම විශ්වාස කරමි, නමුත් ඔවුන්ගේ පැරණි දත්ත ව්‍යුහයන් මඟින් ඔවුන්ට භාවිතා කළ හැකි ඇල්ගොරිතම සීමා කර ඇති අතර නව දත්ත ව්‍යුහයන් දැනට පවතින කේත විශාල ප්‍රමාණයක් බිඳ දැමීය.

ඊට හාත්පසින්ම වෙනස්ව, git හි ලක්ෂණ පුපුරා ගියද, එහි යටින් පවතින දත්ත ව්‍යුහයන් කිසිසේත්ම වෙනස් වී නැත. මුලින්ම දත්ත ව්‍යුහයන් ගැන කරදර වන්න, එවිට ඔබේ කේතය ස්වාභාවිකවම පිරිසිදු වනු ඇත.


25
දුර්වල කේත ව්‍යුහයන් සඳහා හොඳම කේතයට සෑදිය නොහැකි හොඳ රසයක් එය සත්‍යයකි
කොන්රාඩ් ෆ්‍රික්ස්

5
ඔහු කතා කරන්නේ ක්‍රමලේඛකයින්ගේ දෘෂ්ටි කෝණයෙන් ය. අඩු දෝෂ සහ වේගවත් විශේෂාංග එකතු කිරීම් සඳහා පහසුවෙන් නඩත්තු කළ හැකි කේත සෑදීම හැරුණු විට අවසාන පරිශීලක දෘෂ්ටිකෝණය මෙම සාකච්ඡාවට සම්පූර්ණයෙන්ම විකලාංග වේ.
කාල් බීල්ෆෙල්ඩ්ට්

2
Ames ජේම්ස්: ඔහු කියන්නේ මෘදුකාංග වඩා හොඳ බවයි (එබැවින් භාවිතා කිරීමට පහසු සහ වැඩි පිරිසක් භාවිතා කරයි) දත්ත ව්‍යුහයන් වඩා හොඳ නිසා. ඇත්ත වශයෙන්ම ඔබ භාවිතා කරන මෘදුකාංගවල දත්ත ව්‍යුහයන් ගැන ඔබ දැන ගැනීමට අවශ්‍ය නැත , නමුත් ඔබ එය නොදැනුවත්වම වක්‍රව ඒවා ගැන සැලකිලිමත් වේ , මන්ද දත්ත ව්‍යුහයන් යනු ඔබ අවබෝධ කරගත් දේට හේතු වන බැවිනි ගැන සැලකිලිමත් වන්න.
ruakh

1
+1. මෙම පිළිතුර සන්දර්භය තුළ ප්‍රකාශයකට වඩා වෙනස් දෙයක් අදහස් කිරීමට අදහස් කරයි. ගොනුවක පේළි 5000 ක් කියවා ඇති ඕනෑම අයෙකු මා අදහස් කරන දේ හරියටම දනී.
රිවාක්

20
"මුලින්ම දත්ත ව්‍යුහයන් ගැන කරදර වන්න, ඔබේ කේතය ස්වාභාවිකවම පිරිසිදු වනු ඇත.": රෝමානු රාජ්‍ය තාන්ත්‍රික කැටෝ ( en.wikipedia.org/wiki/Cato_the_Elder ) "රෙම් ටෙනේ, වර්බා අනුක්‍රමය" යනුවෙන් පැවසීමට පුරුදුව සිටියේය. ඔබේ මනස, වචන ස්වභාවයෙන්ම අනුගමනය කරනු ඇත ". ක්‍රමලේඛනය සමඟ එකම දේ: දත්ත ව්‍යුහයන් තේරුම් ගෙන මුලින්ම සැලසුම් කරන්න, සත්‍ය කේතය එයම අනුගමනය කරයි.
ජෝර්ජියෝ

60

ඇල්ගොරිතම + දත්ත ව්‍යුහයන් = වැඩසටහන්

කේතය යනු ඇල්ගොරිතම සහ දත්ත ව්‍යුහයන් ප්‍රකාශ කිරීමේ ක්‍රමය පමණි .


නවතම සංස්කරණය ethoberon.ethz.ch/WirthPubl/AD.pdf
dchest

කාර්ය පටිපාටික වැඩසටහන් සඳහා මෙය සත්‍ය වේ; OOP හි ටිකක් වෙනස්.
m3th0dman

3
එය මූලිකව නෑ ඕනෑම වෙනස්. ඔබට දත්ත ඇති අතර එය මත මෙහෙයුම් සමූහයක් කරන්න. සාමාජික විචල්‍යයන් සහ ක්‍රම. හරියටම එකම දෙයයි. 50 දශකයේ සිට පරිගණකයේ සමස්ත සාරය ගොඩනඟා ඇත්තේ වැඩසටහන් ව්‍යුහයන් වෙනස් කරන ඇල්ගොරිතමයන්ගෙන් සමන්විත වන ඉතා සරල රීතියක් මත වන අතර එය වසර 60 කට පසුව සත්‍ය ලෙසම පවතී. ඔබට වැඩසටහන් කාර්යයන් ලෙස සැලකිය හැකිය . ඔවුන් ගත ආදාන ඔවුන් නිෂ්පාදනය කිරීමට ක්රියාත්මක වන මත ප්රතිදානය . හරියටම ගණිතමය කාර්යයන් මෙන්.
zxcdw

31

මෙම උපුටා ගැනීම "ද ආර්ට් ඔෆ් යුනික්ස් ක්‍රමලේඛනය" හි එක් රීතියකට ඉතා හුරුපුරුදු වන අතර එය ලිනක්ස් හි නිර්මාතෘ වීම ටෝවල්ඩ්ස්ගේ බලකොටුවයි. පොත මෙහි මාර්ගගතව පිහිටා ඇත

ටොවල්ඩ්ස් පවසන දේ විස්තර කරන පහත දැක්වෙන උපුටා දැක්වීම පොතෙන්.

නියෝජන රීතිය: දත්ත වලට දැනුම ගුණ කරන්න, එවිට වැඩසටහන් තර්කනය මෝඩ හා ශක්තිමත් විය හැකිය.

සරලම කාර්ය පටිපාටික තර්කනය පවා මිනිසුන්ට සත්‍යාපනය කිරීම අසීරු ය, නමුත් තරමක් සංකීර්ණ දත්ත ව්‍යුහයන් ආදර්ශනය කිරීමට සහ තර්ක කිරීමට තරමක් පහසු ය. මෙය බැලීමට, පනස්-නෝඩ් පොයින්ටර් ගසක (කියන්න) රූප සටහනක ප්‍රකාශන හැකියාව සහ පැහැදිලි කිරීමේ බලය පේළි පනහක වැඩසටහනක ගැලීම් සටහනක් සමඟ සසඳන්න. නැතහොත්, පරිවර්තන වගුවක් ප්‍රකාශ කරන අරාව ආරම්භකය සමාන ස්විච් ප්‍රකාශයක් සමඟ සසඳන්න. විනිවිදභාවය හා පැහැදිලිකමෙහි වෙනස නාටකාකාර ය. රොබ් පයික්ගේ රීතිය 5 බලන්න.

වැඩසටහන් තර්කනයට වඩා දත්ත පත්‍රිකා ගත හැකිය. දත්ත ව්‍යුහයන්හි සංකීර්ණත්වය සහ කේතයේ සංකීර්ණත්වය අතර තේරීමක් ඔබ දකින තැන, කලින් ඇති දේ තෝරන්න. තවත්: නිර්මාණයක් පරිණාමය කිරීමේදී, කේතයෙන් දත්ත වෙත සංකීර්ණත්වය මාරු කිරීමට ඔබ ක්‍රියාශීලීව උත්සාහ කළ යුතුය.

යුනික්ස් ප්‍රජාව මෙම තීක්ෂ්ණ බුද්ධිය ඇති කළේ නැත, නමුත් යුනික්ස් කේත විශාල ප්‍රමාණයක් එහි බලපෑම පෙන්නුම් කරයි. දර්ශකයන් හැසිරවීමේ සී භාෂාවේ පහසුකම, විශේෂයෙන්, කර්නලයේ සිට ඉහළට කේතීකරණයේ සියලු මට්ටම්වල ගතිකව වෙනස් කරන ලද විමර්ශන ව්‍යුහයන් භාවිතා කිරීම දිරිමත් කර ඇත. එවැනි ව්‍යුහයන්හි සරල දර්ශක හඹා යාම නිතරම රාජකාරි කරන්නේ වෙනත් භාෂාවලින් ක්‍රියාත්මක කිරීම වෙනුවට වඩාත් සවිස්තරාත්මක ක්‍රියා පටිපාටි අනුගමනය කළ යුතු බැවිනි.


මටත් මේක මතකයි!
ජෙස්වින් ජෝස්

1
OTOH, ඕනෑම StackOverflow ප්‍රශ්නයක් දෙස බලන්න int**. දත්ත ඇත්ත වශයෙන්ම පැහැදිලි නැති බව එය ඔබට ඒත්තු ගැන්විය යුතුය; එය එසේ වන්නේ දත්ත වලට අර්ථය ඇමිණීමෙන් පමණි. එම අර්ථය කේතයේ ඇත.
MSalters

29

කේතය පහසුය, එය සංකීර්ණ කේතය පිටුපස ඇති තර්කනයයි.

ඔබ කේතය ගැන කරදර වන්නේ නම් එයින් අදහස් කරන්නේ ඔබ තවමත් එම මූලික කරුණු ලබාගෙන නොමැති අතර සංකීර්ණ (එනම් දත්ත ව්‍යුහයන් සහ ඒවායේ සම්බන්ධතා) නැති වී ඇති බවයි.


17
හෙහ්, මම කල්පනා කරනවා ඊළඟ පරම්පරාවේ ක්‍රමලේඛකයින් අසන්නේ: "මොරන්ස් වරක් කීවේ Code is easy, it's the logic behind the code that is complex, ඔහු අදහස් කළේ කුමක්ද?"
යානිස්

36
Ann යානිස් රයිසෝස් එය විශේෂයෙන් අවුල් සහගත වනු ඇත්තේ එය මෝරුන් ලෙසද , නැතහොත් මොරොන්ස් නමින් තනි පුද්ගලයෙකුගෙන්ද කියා මිනිසුන්ට විශ්වාස නැති විටය .
KChaloux

14

මොරොන්ස්ගේ පිළිතුර තරමක් පුළුල් කිරීම සඳහා, අදහස නම් කේතයේ තොරතුරු (වාක්‍ය ඛණ්ඩය සහ අඩු වශයෙන් ව්‍යුහය / පිරිසැලසුම) අවබෝධ කර ගැනීම අපට එය කළ හැකි මෙවලම් තැනීමට තරම් පහසු බවය. කේතය ක්‍රියාකාරී වැඩසටහනක් / පුස්තකාලයක් බවට පත් කිරීම සඳහා දැනගත යුතු සියල්ල සම්පාදකයින්ට තේරුම් ගත හැකිය. නමුත් සම්පාදකයෙකුට ඇත්ත වශයෙන්ම ක්‍රමලේඛකයින් කරන ගැටළු විසඳිය නොහැක .

ඔබට තර්කය තවත් එක් පියවරක් ඉදිරියට ගෙන ගොස් "නමුත් අපට කේත ජනනය කරන වැඩසටහන් තිබේ" යැයි පැවසිය හැකිය, නමුත් එය ජනනය කරන කේතය පදනම් වී ඇත්තේ සෑම විටම පාහේ අතින් සාදන ලද යම් ආකාරයක ආදානයක් මත ය.

එබැවින්, කේතයට පිවිසීමට ඔබ ගන්නා ඕනෑම මාර්ගයක්: එය යම් ආකාරයක වින්‍යාසයක් හෝ වෙනත් ආදානයක් හරහා වේවා මෙවලමක් හරහා කේත නිපදවයි හෝ ඔබ මුල සිටම එය ලියන්නේ නම් එය වැදගත් කේතය නොවේ. එය වැදගත් වන්නේ එම කේතයට පිවිසීමට අවශ්‍ය සියලුම කොටස්වල විවේචනාත්මක චින්තනයයි. ලිනස්ගේ ලෝකයේ බොහෝ දුරට දත්ත ව්‍යුහයන් හා සම්බන්ධතා ඇත, නමුත් වෙනත් වසම්වල එය වෙනත් කොටස් විය හැකිය. නමුත් මෙම සන්දර්භය තුළ ලිනස් පවසන්නේ "ඔබට කේත ලිවිය හැකිදැයි මට ප්‍රශ්නයක් නැත, මා සමඟ කටයුතු කරන ගැටලු විසඳන කරුණු ඔබට තේරුම් ගත හැකි යැයි මම සිතමි".


සෑම ක්‍රමලේඛකයෙක්ම කේත ජනනය කරන වැඩසටහන් භාවිතා කරයි. ඒවා බොහෝ විට "සම්පාදකයින්" ලෙස හැඳින්වේ, සමහර විට "සම්බන්ධකයන්" සමඟ සංයුක්ත වේ. ඔවුන් සාමාන්‍යයෙන් (නමුත් සෑම විටම නොවේ) යම් ආකාරයක පෙළ ආකෘතියකින් ලබා දී ඇති (සාපේක්ෂව) මානව-කියවිය හැකි සහ මානව-ලිවිය හැකි ආදානයක් ගෙන එය පරිගණකයට උපදෙස් ලෙස තේරුම් ගෙන ක්‍රියාත්මක කළ හැකි දත්ත බවට පත් කරයි.
සීවීඑන්

13

ලිනස් අදහස් කරන්නේ මෙයයි:

ඔබේ ගැලීම් සටහන් [කේතය] මට පෙන්වන්න, ඔබේ වගු [යෝජනා ක්‍රමය] සඟවන්න, එවිට මම දිගටම අබිරහස් වන්නෙමි; ඔබේ වගු [යෝජනා ක්‍රමය] මට පෙන්වන්න, මට සාමාන්‍යයෙන් ඔබේ ගැලීම් සටහන් අවශ්‍ය නොවේ [කේතය]: ඒවා පැහැදිලිව පෙනේ.

- ෆ්‍රෙඩ් බ ok ක්ස්, "මිථ්‍යා මිනිසාගේ මාසය", ch 9.


12

මම හිතන්නේ ඔහු කියා සිටින්නේ සමස්ත ඉහළ මට්ටමේ සැලසුම (දත්ත ව්‍යුහයන් සහ ඒවායේ සම්බන්ධතා) ක්‍රියාත්මක කිරීමේ තොරතුරු (කේතය) ට වඩා වැදගත් බවයි. මම හිතන්නේ ඔහු පද්ධතියක තොරතුරු කෙරෙහි පමණක් අවධානය යොමු කළ හැකි අයට වඩා පද්ධතියක් සැලසුම් කළ හැකි ක්‍රමලේඛකයින් අගය කරයි.

දෙකම වැදගත් ය, නමුත් සාමාන්‍යයෙන් විශාල පින්තූරය ලබා ගැනීම වඩා හොඳ බවත් අනෙක් පැත්තට වඩා විස්තර සමඟ ගැටලු ඇති බවත් මම එකඟ වෙමි. විශාල කාර්යයන් කුඩා ඒවා ලෙස බිඳ දැමීම ගැන මා ප්‍රකාශ කිරීමට උත්සාහ කළ දෙයට මෙය සමීපව සම්බන්ධ වේ .


+1: මම ඔබ සමඟ එකඟයි. තවත් පැතිකඩක් නම්, බොහෝ විට ක්‍රමලේඛකයින් ඔවුන්ගේ දත්ත ව්‍යුහයන් සහ ඇල්ගොරිතම කෙරෙහි අවධානය යොමු කරනවා වෙනුවට සරල හා පැහැදිලි ආකාරයකින් ඒවා ලිවිය යුතු ආකාරය පිළිබඳව අවධානය යොමු කරනවා වෙනුවට ඔවුන් භාවිතා කිරීමට යන්නේ කුමන සිසිල් භාෂා අංගයක්ද යන්න ගැන වඩාත් කනස්සල්ලට පත්වීමයි.
ජෝර්ජියෝ

මමත් එකඟයි. කාරණය නම් හුදකලා කේත කොටස් වෙනස් කිරීම පහසුය, නමුත් කේත කැබලි අතර දත්ත ව්‍යුහයන් හෝ අතුරුමුහුණත් වෙනස් කිරීම දුෂ්කර ය (මෙම වෙනස්කම් එක් දෙයකට වඩා බොහෝ දේට බලපානු ඇත).
බ්‍රෙන්ඩන්

5

හොඳයි, මට සම්පූර්ණයෙන්ම එකඟ විය නොහැක, මන්ද ඔබ ඒ සියල්ල ගැන කරදර විය යුතුය. ඒ කාරණය සඳහා, මම ක්‍රමලේඛයට ප්‍රිය කරන එක් දෙයක් නම්, විවිධ මට්ටමේ වියුක්ත කිරීම් සහ ප්‍රමාණයන් හරහා මාරුවීමයි, එය නැනෝ තත්පර ගැන සිතීමේ සිට මාස ගණනක් ගැන සිතීම දක්වා වේගයෙන් පනින අතර නැවත නැවතත්.

කෙසේ වෙතත්, ඉහළ දේවල් වඩා වැදගත් ය.

වැරදි හැසිරීම් වලට හේතු වන ගැටළු කිහිපයක දෝෂයක් මා සතුව තිබේ නම්, එය නිවැරදි කිරීමට අපහසු නැත. එය ක්‍රියාකාරීත්වයට හේතු වන්නේ නම්, එය බොහෝ විට වැදගත් නොවේ.

වැරදි පද්ධතියකට හේතු වන උප පද්ධතියක දත්ත ව්‍යුහය තෝරා ගැනීමේදී මට අඩුපාඩුවක් තිබේ නම්, එය වඩා විශාල ගැටළුවක් වන අතර එය නිවැරදි කිරීමට අපහසු වේ. එය ක්‍රියාකාරීත්වයට හේතු වන්නේ නම්, එය තරමක් බැරෑරුම් හෝ දරාගත හැකි නම්, ප්‍රතිවාදී ප්‍රවේශයකට වඩා සැලකිය යුතු තරම් අඩුය.

යෙදුමක වැදගත්ම දත්ත ව්‍යුහයන් අතර සම්බන්ධතාවයේ දෝෂයක් තිබේ නම්, එය වැරදි හැසිරීමට හේතු වේ නම්, මා ඉදිරිපිට දැවැන්ත ප්‍රතිනිර්මාණයක් කර ඇත. එය ක්‍රියාකාරීත්වයට හේතු වන්නේ නම්, එය එතරම් නරක විය හැකි අතර එය වැරදි ලෙස හැසිරෙන්නේ නම් එය වඩා හොඳ වනු ඇත.

හා එය දුෂ්කර අය අඩු මට්ටමේ ගැටලු සොයා (අඩු මට්ටමේ දෝෂ සවි පහසු සාමාන්යයෙන්, එය අසීරු විය හැකි බව ඔවුන් සොයා ඇති) කරන දේ වනු ඇත.

අඩු මට්ටමේ දේවල් වේ වැදගත්, හා එහි කොටස් වැදගත්කම බොහෝ විට බරපතල ලෙස සුළුවෙන් ඇත, නමුත් එය විශාල දේවල් සාපේක්ෂව සුදුමැලි කරන්නේ.


2

කේතය දන්නා කෙනෙකු "ගස්" දකී. නමුත් දත්ත ව්‍යුහයන් අවබෝධ කරගත් අයෙක් "වනාන්තරය" දකී. එබැවින් හොඳ ක්‍රමලේඛකයෙකු කේතයට වඩා දත්ත ව්‍යුහයන් කෙරෙහි වැඩි අවධානයක් යොමු කරනු ඇත.


2
නමුත් වනාන්තරය හෝ ගස් අනෙකා බැහැර කිරීම කෙරෙහි අවධානය යොමු කිරීම අහිතකර විය හැකි බැවින් මෙම ප්‍රතිසමයට ගැලපේ යැයි මම නොසිතමි.
kojiro

1
oj කොජිරෝ: ප්‍රකාශනයේ ගස් සඳහා වනාන්තරය නොපෙනේ නම්, වනාන්තරය දැකිය හැකි අයෙකුට ගස් ද පෙනෙනු ඇතැයි උපකල්පනය කෙරේ ( en.wiktionary.org/wiki/see_the_forest_for_the_trees බලන්න ). එබැවින් එය මෙහි හොඳ ප්‍රතිසමයක් යැයි මම සිතමි.
Treb

2

දත්ත ගලා යන්නේ කෙසේදැයි දැන ගැනීම සියල්ල වැදගත් ය. ප්‍රවාහය දැන ගැනීම සඳහා ඔබ හොඳ දත්ත ව්‍යුහයන් සැලසුම් කිරීම අවශ්‍ය වේ.

ඔබ අවුරුදු විස්සක් පසුපසට ගියහොත්, මෙය ස්මාල්ටෝක්, සී ++ හෝ ජාවා භාවිතා කරමින් වස්තු නැඹුරු ප්‍රවේශය සඳහා විශාල විකුණුම් ලක්ෂ්‍යයකි. විශාල තණතීරුව - අවම වශයෙන් සී ++ සමඟ එය මා මුලින් ඉගෙන ගත් දෙයයි - පංතිය සහ ක්‍රම සැලසුම් කිරීම, එවිට අනෙක් සියල්ල නිසි තැනට වැටෙනු ඇත.

ලිනස් නිසැකවම පුළුල් වචන වලින් කථා කළ නමුත් දුර්වල ලෙස සැලසුම් කරන ලද දත්ත ව්‍යුහයන්ට බොහෝ විට කේත නැවත සකස් කිරීම අවශ්‍ය වන අතර එය වෙනත් ගැටළු වලටද හේතු විය හැක.


2

එයින් යෙදිය හැකි / ඉගෙන ගත හැක්කේ කුමක්ද?

මට හැකි නම්, පසුගිය සති කිහිපය තුළ මගේ අත්දැකීම්. පෙර සාකච්ඡාවලින් මගේ ප්‍රශ්නයට පිළිතුර පැහැදිලි විය: "මම ඉගෙනගත්තේ කුමක්ද?"

මම යම් කේතයක් නැවත ලිවූ අතර, “ව්‍යුහය, ව්‍යුහය ...” යනුවෙන් මා දුටු හා නොකඩවා කියූ ප්‍රති results ල පිළිබිඹු කරමින් එවැනි නාටකාකාර වෙනසක් ඇති වූයේ එබැවිනි. සියලු වෙනස්කම් ඇති කළේ දත්ත ව්‍යුහය බව දැන් මට පෙනේ . මම සියල්ලම අදහස් කරමි .

  • මගේ මුල් භාරදීම පරීක්ෂා කිරීමෙන් පසු ව්‍යාපාර විශ්ලේෂකයා මට පැවසුවේ එය ක්‍රියාත්මක නොවන බවයි. අපි "දින 30 ක් එකතු කරන්න කියා සිටියේ" නමුත් අප අදහස් "මාසයක් එකතු කරන්න" (විය දින ඵලිත දිනය වෙනස් වන්නේ නැත). විවික්ත අවුරුදු, මාස, දින එකතු කරන්න; උදාහරණයක් ලෙස මාස 18 ක් සඳහා දින 540 ක් නොවේ.

  • නිවැරදි කිරීම: දත්ත ව්‍යුහය තුළ තනි නිඛිලයක් වෙනුවට පූර්ණ සංඛ්‍යා අඩංගු පන්තියක් ආදේශ කරන්න, එහි ඉදිකිරීම් වෙනස් කිරීම එක් ක්‍රමයකට සීමා විය. සත්‍ය දිනය ගණිත ප්‍රකාශ වෙනස් කරන්න - ඒවා සියල්ලම.

ගෙවීම

  • නව ක්‍රියාත්මක කිරීමේදී වැඩි ක්‍රියාකාරීත්වයක් ඇති නමුත් ඇල්ගොරිතම කේතය කෙටි හා පැහැදිලිවම සරල විය.

කේත හැසිරීම / ප්‍රති results ල නිවැරදි කිරීමේදී:

  • මම දත්ත ව්‍යුහය වෙනස් කළා මිස ඇල්ගොරිතම නොවේ.
  • කේතයේ කොතැනකවත් පාලක තර්කනයක් ස්පර්ශ නොවීය.
  • API කිසිවක් වෙනස් කර නැත.
  • දත්ත ව්‍යුහය කර්මාන්තශාලා පන්තිය කිසිසේත් වෙනස් වූයේ නැත.

1

අහඹු හා දීප්තිමත් පොත් මිලියනයක් සහිත මනරම් පුස්තකාලයක පුස්තකාලයාධිපතිවරුන් ඉතා දක්ෂ කණ්ඩායමක් සිතීමට මා කැමතිය, එය තරමක් මෝඩකමක් වනු ඇත.


1

ලිනස් සමඟ තවත් එකඟ විය නොහැක. දත්ත කෙරෙහි අවධානය යොමු කිරීම දී ඇති ගැටලුවකට සරල හා නම්‍යශීලී විසඳුමක් ලබා දීමට බෙහෙවින් උපකාරී වේ. Git යනු සනාථ කරන උදාහරණයකි - සංවර්ධනයේ වසරවල දී බොහෝ විශේෂාංග ලබා දී ඇති අතර, මූලික දත්ත ව්‍යුහය බොහෝ දුරට නොවෙනස්ව පවතී. ඒක මැජික්! --2 සී


0

මෙය ප්‍රදේශ ගණනාවක් බව මම දැක ඇත්තෙමි.

ව්‍යාපාර විශ්ලේෂණය ගැන සිතා බලන්න ... කොල්ගේට් වැනි පාරිභෝගික නිෂ්පාදන සමාගමක අලෙවිකරණයට සහාය වීමට හොඳම ක්‍රමය ඔබ විශ්ලේෂණය කරන බව කියමු. ඔබ විසිතුරු කවුළු හෝ නවීන තාක්‍ෂණයෙන් ආරම්භ කරන්නේ නම්, ඔබ මුලින් ව්‍යාපාරයේ දත්ත අවශ්‍යතා ගැන සිතනවාට වඩා ව්‍යාපාරයට උදව් නොකරනු ඇත, පසුව ඉදිරිපත් කිරීම ගැන කරදර වන්න. දත්ත ආකෘතිය ඉදිරිපත් කිරීමේ මෘදුකාංගය අභිබවා යයි.

වෙබ් පිටුවක් කිරීම ගැන සලකා බලන්න. මුලින්ම ඔබට පෙන්වීමට අවශ්‍ය දේ (HTML) ගැන සිතීම වඩා හොඳය, පසුව ශෛලිය (CSS) සහ ස්ක්‍රිප්ටින් (ඔබේ මෙවලම තෝරන්න) ගැන කරදර වන්න.

කේතීකරණය ද වැදගත් නොවන බව මින් අදහස් නොකෙරේ. අවසානයේ ඔබට අවශ්‍ය දේ ලබා ගැනීමට ඔබට ක්‍රමලේඛන කුසලතා අවශ්‍ය වේ. දත්ත යනු අත්තිවාරම බව ය. දුර්වල දත්ත ආකෘතියක් ඕනෑවට වඩා සංකීර්ණ හෝ නොසිතූ ව්‍යාපාරික ආකෘතියක් පිළිබිඹු කරයි.


0

මගේ දත්ත සමුදා ක්‍රමයට නව තීරු හෝ වගු එකතු කිරීමට වඩා බොහෝ විට නව කාර්යයන් ලිවීම සහ පවතින ඒවා යාවත්කාලීන කිරීම මට පෙනේ. හොඳින් සැලසුම් කරන ලද සියලුම පද්ධති සඳහා මෙය බොහෝ විට සත්‍ය වේ. ඔබේ කේතය වෙනස් කිරීමට අවශ්‍ය සෑම අවස්ථාවකම ඔබේ ක්‍රමෝපාය වෙනස් කිරීමට ඔබට අවශ්‍ය නම්, එහි පැහැදිලි ලකුණ වන්නේ ඔබ ඉතා නරක සංවර්ධකයෙකි.

කේත දර්ශකයේ ගුණාත්මකභාවය = [කේත වෙනස් කිරීම්] / [දත්ත සමුදායේ වෙනස්වීම්]

"ඔබේ ගැලීම් සටහන් මට පෙන්වන්න, ඔබේ වගු සඟවන්න. මම දිගටම අබිරහස් වන්නෙමි. ඔබේ වගු මට පෙන්වන්න. මට සාමාන්‍යයෙන් ඔබේ ගැලීම් සටහන් අවශ්‍ය නොවනු ඇත. ඒවා පැහැදිලිව පෙනෙනු ඇත." (ෆ්‍රෙඩ් බ ok ක්ස්)


-2

මෙම අදහස විවිධ ක්‍රමලේඛනවල විවිධ අර්ථකථන ඇති බව පෙනේ. එය පද්ධති සංවර්ධනය සඳහා සත්‍ය වන අතර ව්‍යවසාය සංවර්ධනය සඳහා ද සත්‍ය වේ. නිදසුනක් ලෙස, වසම මත පදනම් වූ සැලසුමේ වසම දෙසට තියුණු ලෙස යොමු වීම දත්ත ව්‍යුහයන් සහ සම්බන්ධතා කෙරෙහි අවධානය යොමු කිරීම හා සමාන යැයි කෙනෙකුට තර්ක කළ හැකිය.


-4

මෙන්න එය පිළිබඳ මගේ අර්ථ නිරූපණය: දත්ත ව්‍යුහයන් නිර්මාණය කිරීම සඳහා ඔබ කේතය භාවිතා කරයි, එබැවින් අවධානය යොමු විය යුත්තේ දෙවැන්න වෙත ය. එය පාලමක් තැනීම හා සමානයි - ඔබ සිත් ඇදගන්නා පෙනුමක් ඇති ව්‍යුහයකට වඩා structure න ව්‍යුහයක් සැලසුම් කිරීමට සූදානම් විය යුතුය. එය එසේ වන්නේ හොඳින් ලියා ඇති දත්ත ව්‍යුහයන් සහ පාලම් ඒවායේ කාර්යක්ෂම සැලසුම්වල ප්‍රති as ලයක් ලෙස හොඳ පෙනුමක් ඇතිවය.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.