פרסומת

ללא ספק, תכנות קשה. זה דבר אחד לעשות ללמוד שפות ולימוד אלגוריתמים, אבל זו חיה אחרת לגמרי שמנסה לקוד יישום עובד מורכב שלא גורם לך לרצות לחטט את העיניים.

במובן מסוים, כתיבת קוד נקי זה כמו ציור, בישול או צילום - זה נראה קל יותר ממה שהוא בפועל. אז למה אח? ובכן, מכיוון שהיתרונות שווים את זה:

  • הבעיות הופכות לקלות יותר לפתרון. ברגע שאתה מתחיל לחשוב בקוד נקי, הגישה שלך לפיתרון בעיות משתנה. במקום פתרונות לאילוץ ברוט, האלגוריתמים ועיצוב התוכנה שלך הופכים אלגנטיים ומכוונים יותר.
  • פחות זמן מבוזבז על התחזוקה. קל יותר לקרוא ולהבין את הקוד הנקי, כך שאתה מקדיש פחות זמן לנסות להבין מה מקטעים מסוימים עושים בפועל ויותר זמן לתקן, לשנות, להרחיב וכו '.
  • רעיונות מועברים בצורה ברורה יותר. אם אתה עובד עם מתכנתים אחרים, קוד נקי מצמצם את הסבירות לאי הבנות בין כולכם, מה שאומר גם פחות באגים בטווח הרחוק.

כך תוכלו להתחיל לכתוב קוד נקי.

1. השתמש בשמות תיאוריים

מהם משתנים, מחלקות ופונקציות? ישנן דרכים רבות לענות על כך, אבל כשאתה באמת חושב על זה, הדברים אינם אלא הממשק בין מתכנת וההיגיון הבסיסי של יישום.

אז כשאתה משתמש בשמות לא ברורים ולא מתוארים עבור משתנים, מחלקות ופונקציות,

instagram viewer
אתה למעשה מעריך את היגיון היישום מכל מתכנת שקורא את הקודכולל עצמך.

"אני לא מתכנת נהדר; אני פשוט מתכנת טוב עם הרגלים נהדרים. "
- קנט בק

מה עושה משתנה בשם dxy בעצם מתכוון? מי יודע. סביר להניח שתצטרך לקרוא את כל נתח הקוד בכדי להפוך את המשמעות של מהנדס הפוך. מצד שני, המשמעות של משתנה כמו מרחק ביןXY ניתן לזיהוי מיידי.

הדבר נכון גם לגבי שיעורים ופונקציות. אל תסתפקו ב CalcTan () כשאתה יכול ללכת על CalculTangent () או CalcTangentAngle () במקום זאת.

2. תן לכל כיתה / פונקציה מטרה אחת

האם אי פעם הצצת בתוך פונקציה שאורכה מאות או אלפי שורות? אם יש לך, אז אתה יודע כמה כאב זה יכול להיות לגלוש, להבין ולערוך. הערות יכולות לעזור אך רק במידה מוגבלת.

"תכנות מפרקת משימה בלתי אפשרית אחת גדולה למספר משימות אפשריות קטנות."
- ג'אזוונט

קוד נקי מחולק לנתחים אטומיים. כל פונקציה צריכה להיות מכוונת לעשות דבר אחד וכל שכבה צריכה לשאוף לייצג מושג מסוים. זהו פשט כמובן, אך כאשר יש ספק, הפשוט יותר נקי.

בפועל, חישוב מורכב כמו GetCreditScore () יתכן שיהיה צורך לחלק למספר פונקציות עוזרות כמו GetCreditReports (), ApplyCreditHistoryAge (), ו FilterOutstandingMarks ().

3. מחק קוד לא נחוץ

הרגל רע זה הוא שאני עדיין נאבק איתו מדי פעם. זה קורה בדרך כלל כך: אני רוצה לתקן או לייעל את נתח הקוד כך שאני מעיר את זה ועורך שכתוב מחדש מתחתיו - ולמרות שהוא עובד, אני שומר את הקוד הישן שם למקרה.

"האם יתכן שתוכנה אינה דומה לשום דבר אחר, שנועדה להשליך אותה: שכל העניין הוא לראות את זה תמיד כבועת סבון?"
- אלן ג'. פרליס

עם הזמן, אני צובר המון חסימות קוד שהוגשו בתגובות שכבר אין בהן צורך עדיין עמוס על קבצי המקור שלי. והדבר המצחיק הוא שבמקרים רבים, הקוד סביבו התפתח כך שהקוד שהוסבר לא יעבוד אפילו אם ישוחזר.

העניין הוא שפרקטיקה זו של הערת "קוד גיבוי" התיישנה על ידי בקרת המקורות. אם אינך משתמש במשהו כמו גיט או מרקוריאל, עליך לעשות זאת התחל להשתמש בבקרת מקור מייד. קוד מנקה מחכה לכם.

זכור, חשוב גם להימנע מכתיבת קוד החוזר על עצמו, שתוכלו להשיג בקלות באמצעות מסגרת אינטרנטית. הנה כמה מסגרות אינטרנט שכדאי ללמוד כמפתח 5 מסגרות אינטרנטיות שווה למידה עבור מפתחיםמעוניין ללמוד פיתוח אינטרנט מתקדם? הימנע מכתיבה של שימוש חוזר חוזר ונשנה במסגרות אלה בנושא פיתוח אתרים. קרא עוד .

4. קריאות> קליברנס

יותר מדי מתכנתים מתנגשים בין "קוד נקי" ל"קוד חכם ", כאילו לדחוס עשרה שורות לאחד הוא איכשהו נקי יותר. בטח, זה תופס פחות מקום על המסך, אבל האם זה בעצם קל יותר להבין? לפעמים, אולי. אבל רוב הזמן? לא.

"כולם יודעים כי ניפוי באגים קשה כפליים מכתיבת תוכנית מלכתחילה. אז אם אתה חכם ככל שאתה יכול להיות כשאתה כותב את זה, איך אי פעם תבחן את זה? "
- בריאן וו. קרניגן

אני חושב שמתכנתים אוהבים קוד חכם כי זה מרגיש כמו חידה או חידה שנפתרה. הם מצאו דרך מיוחדת וייחודית ליישם משהו - "קיצור דרך" אם תרצו - וזה כמעט משמש כתוקף למיומנויות המתכנת.

אבל כדי לכתוב קוד נקי, אתה צריך להשאיר את האגו שלך בדלת.

בצע אופטימיזציה תמיד לקוד עבור האדם הבא שיקרא אותו, כי ככל הנראה האדם הבא למעשה אתה תהיה אותך ואין שום דבר מביש יותר מאשר לא להיות מסוגל לקרוא או להבין את שלך פיקחות.

5. שמור על סגנון קידוד עקבי

יש לי שום דבר נגד הדרכות תכנות טובות מה עושה הדרכה לתכנות טובה?לא כל שיעורי ההדרכה לתכנות נעשים שווים. חלקם מועילים לך ואחרים לבזבז את זמנך. להלן מה לחפש במדריך תכנות איכותי. קרא עוד אבל אחד החסרונות הוא שהמתחילים החדשים מגלים מגוון רחב של הרגלים מנוגדים, במיוחד כשמדובר בסגנון קידוד.

אני לא כאן כדי להכריז שסגנון אחד עדיף על סגנון אחר. אם אתה רוצה פלטה על הקווים שלהם, לך על זה. אם אתה רוצה להקדים שיחות שיטה עם רווחים, בסדר. אם אתה מעדיף כרטיסיות על פני חללים, אל תתן לי לשכנע אותך אחרת.

אבל כל מה שתעשו, הישארו עקביים!

יפה יותר טוב מכוער.
מפורשות טובה יותר מכל משתמע.
פשוט עדיף על מורכב.
המתחם טוב יותר מסובך.
דירה טובה יותר מקינון.
דליל עדיף על צפיפות.
הקריאות סופרת.
- טים פיטרס, הזן של פיתון

אם אתה מתכוון להשתמש camelCaseNaming עבור משתנים, אל תבייש את זה עם הדגשה תחתונה. אם אתה משתמש GetThisObject () במקום אחד, אל תלך איתו FetchThatObject () במקום אחר. ואם אתה מערבב כרטיסיות ורווחים, מגיע לך שהמקלדת שלך תילקח ממנה.

החלט מה אתה הולך לעשות מלכתחילה והצמד אליו דרך ומעבר. בחלק מהשפות, כמו Python ו- C #, יש מדריכי סגנון לשפה שאולי תרצו לעקוב אחריהם.

6. בחר באדריכלות הנכונה

ישנן פרדיגמות ארכיטקטורות רבות ושונות בהן תוכלו להשתמש בכדי ליצור את הפרויקטים שלכם. שימו לב כיצד טיפ זה קשור לבחירת ה- ימין אחד לצרכים שלך, לא לגבי בחירת ה- הטוב ביותר אחד שם בחוץ. אין כאן "הטוב ביותר".

"ללא דרישות ועיצוב, תכנות היא האמנות של הוספת באגים לקובץ טקסט ריק."
- לואי סרגלי

לדוגמה, תבנית ה- MVC (Model-View-Controller) פופולרית מאוד כבר עכשיו בפיתוח אתרים מכיוון שהיא מסייעת לשמור על קוד מאורגן ומעוצב בצורה שתמזער את מאמצי התחזוקה.

באופן דומה, דפוס ה- Entity-Component-System (ECS) פופולרי מאוד כרגע בפיתוח משחקים מכיוון שהוא עוזר במודוליזציה של נתוני המשחק וההגיון באופן שמקל על האחזקה והכל תוך הפקת קוד שקל יותר לעשות זאת לקרוא.

7. שלט באידיומות השפה

אחד הקשיים ב שליטה בשפת תכנות חדשה 7 טריקים שימושיים לשליטה בשפת תכנות חדשהזה בסדר להיות מוצף כשאתה לומד לבצע קוד. בטח תשכח דברים מהר ככל שתלמד אותם. טיפים אלה יכולים לעזור לך לשמור טוב יותר על כל המידע החדש הזה. קרא עוד לומד את הדקויות המפרידות אותו מכל שאר השפות. ניואנסים אלה יכולים להיות ההבדל בין קוד מכוער, מפותל וקוד יפה וקל לתחזוקה.

קחו למשל את Python, Java ו- JavaScript. כולם שונים זה מזה באופן קיצוני, לדרגה הדורשת א דרך חשיבה שונה, תלוי באיזו שפה אתם בוחרים להשתמש.

"שפה שלא משפיעה על הדרך בה אתה חושב על תכנות לא כדאי לדעת."
- אלן ג'. פרליס

בעוד שפייתון עוסק בקידוד הקלדה והקלדת ברווזים, ג'אווה היא יותר לצד הצדדיות והמילה. לכל שפה ניבים (כמו הבנות רשימה בפיתון) המעודדים דרך מסוימת של קידוד. תעשה טוב ללמוד אותם.

יש גם "אנטי-דפוסים" לדאוג להם, שהם למעשה דפוסי תכנון אופטימליים התת-אופטימליים אשר גורמים לקוד לא יעיל, לא אמין או רע אחר. חקר ונתן את כל האנטי-דפוסים הנפוצים הקשורים לשפת הבחירה שלך.

8. חקר את קוד המאסטרים

אם אתה רוצה לכתוב קוד נקי, הדבר הטוב ביותר שאתה יכול לעשות הוא לראות איך נראה קוד נקי ולנסות להבין מדוע זה ככה - ואין דרך טובה יותר לעשות זאת מאשר ללמוד את קבצי המקור של אדונים בתעשייה.

ברור שאתה לא יכול פשוט להיכנס למטה של ​​מיקרוסופט ולהציץ לפרויקטים שלהם, אבל אתה תמיד יכול לעשות זאת עיין בפרויקטים ידועים של קוד פתוח כיצד להציג ולערוך את קוד המקור של אפליקציית קוד פתוחאמנם מעבר של קוד פתוח עשוי להיות בחירה טובה, אך עליכם להשקיע גם בקהילה הנכונה. GitHub הוא אחד המקומות הטובים ביותר לעשות זאת, לא רק בגלל הכמות העצומה ... קרא עוד . לא יודעים מאיפה להתחיל? לנסות את פרויקטים שהוצגו ב- Github.

"כל שוטה יכול לכתוב קוד שהמחשב יכול להבין. מתכנתים טובים כותבים קוד שבני אדם יכולים להבין. "
- מרטין פאולר, שיקום מחדש: שיפור עיצוב קוד קיים

אחרי הכל, זו אחת הסיבות מדוע קיימים פרויקטים עם קוד פתוח מדוע אנשים תורמים לפרויקטים של קוד פתוח?פיתוח קוד פתוח הוא עתיד התוכנה. זה נהדר עבור משתמשים מכיוון שתוכנת קוד פתוח לרוב זמינה בחינם ולעתים קרובות בטוחה יותר לשימוש. אבל מה מכריח את המפתחים לתרום קוד בחינם? קרא עוד כך שאחרים יוכלו ללמוד מהם. ואם החלטתם לתרום לפרויקט כזה, זה יכול להאיץ את תהליך הלמידה 5 רעיונות לפרויקט שיעזרו לכם ללמוד תכנות מהר יותרישנן כמה דרכים להקל על עקומת הלמידה לתכנות. מלכלך את הידיים וללמוד מהר יותר עם פרויקטים צדדיים שתוכלו להתחיל בכל עת. להשתעשע עם החמישה האלה. קרא עוד .

באופן אישי, הפעם הראשונה שראיתי קוד נקי באמת היא כשנתקלתי בפרויקט פיתון של קוד חובב מסוים. הקוד היה כה אלגנטי ביותר עד שכמעט התפטרתי מהתכנות, אך בסופו של דבר לימד אותי המון.

9. כתוב הערות טובות

"כתוב הערות טובות" הוא העצה העתיקה ביותר בעולם התכנות. למען האמת, ברגע שמוכרים חדשות למודעות, הם די מעודדים להגיב בתדירות גבוהה ככל שהם יכולים.

אבל זה כמעט מרגיש כאילו הסתובבנו רחוק מדי בכיוון ההפוך. במיוחד ילדים חדשים נוטים להגיב יתר על המידה - לתאר דברים שאינם צריכים להיות מתוארים וחסרים את הנקודה של מה ש"הערה טובה "היא למעשה.

"קוד תמיד כאילו הבחור שבסופו של דבר ישמור את הקוד שלך יהיה פסיכופת אלים שיודע איפה אתה גר."
- ג'ון וודס

הנה כלל אצבע טוב: קיימות הערות כדי להסביר מדוע קיים קוד כלשהו ולא מה הקוד עושה בפועל. אם הקוד כתוב מספיק בצורה נקייה, עליו להיות מסביר את עצמו מה הוא עושה - התגובה צריכה לשפוך אור על הכוונה שמאחורי הסיבה שהוא נכתב.

הערות יכולות להיות טובות לאזהרות (כלומר, "הסרת זה תשבר את A, B ו- C") אך לרוב חשוף דברים שלא ניתן לגבות מיידית מהקוד (כלומר, "השתמש בפרמטר זה מכיוון ש- X, Y ו- Z ”).

10. Refactor, Refactor, Refactor

כשם שהעריכה היא חלק מתהליך הכתיבה, שיבוץ מחדש הוא חלק מתהליך הקידוד. רתיעה משיבוץ מחדש היא הדרך המהירה ביותר לסיים עם קוד בלתי בר-קיימא, כך שבמובנים רבים זהו למעשה הטיפ החשוב ביותר שיש לקחת בחשבון.

בקיצור, שיקום מחדש הוא רק מונח מפואר לניקוי הקוד מבלי להשפיע על התנהגותו בפועל.

"בכל פעם שאני צריך לחשוב כדי להבין מה עושה הקוד, אני שואל את עצמי אם אוכל לחדש את הקוד בכדי להבהיר את ההבנה באופן מיידי יותר."
- מרטין פאולר, שיקום מחדש: שיפור עיצוב קוד קיים

קצת חוכמה שדבקה איתי היא האמירה "אל תגיב לקוד רע. שכתב את זה. " כפי שמסביר פאולר בציטוט לעיל, אם הקוד אי פעם מרגיש מספיק מבלבל שאתה צריך להגיב עליו, אולי אתה בעצם צריך לשוב ולבצע אותו מחדש.

יתר על כן, כשאתה עורך פיסות קוד פה ושם לאורך כל הפרויקט שלך, השאירו את הקוד תמיד במצב טוב יותר מאשר כאשר מצאתם אותו לראשונה. זה אולי נראה כרגע מטרד, אבל זה ישתלם בטווח הרחוק (ויכולים אפילו למנוע שחיקה נפשית תכנות שחיקה: כיצד להחזיר את המוטיבציה האבודה שלךכתיבת כל שורות הקוד יכולה להתנקז פיזית ורגשית. כל מה שצריך כדי לגבות הוא המודעות שאפשר להחזיר את המוטיבציה. קרא עוד ).

תמיד יש משהו חדש ללמוד

מתכנת שלומד לכתוב קוד נקי דומה לסופר שלומד לכתוב פרוזה נקייה: אין דרך נכונה לעשות זאת כשלעצמה, אבל יש המון דרכים שגויות לעשות את זה, וייקח שנים עד אדון.

יש אנשים שאין להם מה שצריך בסופו של דבר בסופו של דבר להפסיק את התכנות לתמיד 6 סימנים שאתה לא מתכוון להיות מתכנתלא כולם מתכוון להיות מתכנת. אם אינך בטוח לחלוטין שאתה אמור להיות מתכנת, הנה כמה סימנים שעשויים לכוון אותך בכיוון הנכון. קרא עוד וזה בסדר כי יש המון משרות טכניות אחרות שאינן כרוכות בקידוד קידוד אינו מיועד לכולם: 9 משרות טכניות שתוכלו להשיג בלעדיהאל תתייאש אם אתה רוצה להיות חלק מתחום הטכנולוגיה. יש המון מקומות עבודה לאנשים ללא כישורי קידוד! קרא עוד . אבל עבור כל אחד אחר, קוד נקי הוא דבר ששווה בהחלט לחתור אליו, גם אם לוקח את שארית חייך להגיע לשם.

ג'ואל לי הוא בעל תואר B.S. במדעי המחשב ומעל שש שנות ניסיון בכתיבה מקצועית. הוא העורך הראשי של MakeUseOf.