בהיותי מתכנת ג'אווה ומפתח תוכנה, למדתי רבות מהמאמרים הרבים שכותרתם מה שכל מתכנת צריך לדעת על..... , הם נוטים לספק מידע רב שימושי ומקיף על נושא מסוים שאחרת קשה לו. לְגַלוֹת. בחיפושי אחר ידע, נתקלתי בכמה מאמרים שימושיים מאוד שסימנתי כמידע עזר לקריאה חוזרת. הרעיון שמתכנתים רבים יכולים להפיק תועלת מקריאת האוסף הזה הניע אותי לכתוב את הפוסט הזה ולשתף אתכם בכל המאמרים האלה של "מה שכל מתכנת צריך לדעת". במאמר זה, תכירו את מערך הידע הקלאסי שכל מתכנת צריך, בנושאים כמו זיכרון , Unicode , חשבון נקודה צפה , רשתות , עיצוב מונחה עצמים), זמן , קידוד כתובת URL , מחרוזת ועוד רבים אחרים. רשימה זו חשובה מאוד למתחילים ולמצטרפים חדשים מכיוון שלעתים קרובות אין להם ידע מעשי. מכיוון שרוב המאמרים מבוססים על דוגמאות מהחיים האמיתיים, מתכנתים ברמת התחלה ובינוניים יכולים ללמוד מהם הרבה. כמו כן, לימוד היסודות בתחילת הקריירה שלך יעזור לך להימנע מהטעויות שמתכנתים ומפתחי תוכנה אחרים כבר עשו במהלך מסלול הלמידה שלהם. למרבה הצער, לא כל המידע מהמאמרים המתוארים ניתן לעיכול מהקריאה הראשונה. רוב הסיכויים שאולי לא תבינו מיד חלק מהפרטים לגבי מספרי נקודה צפה, או שאתם עלולים להתבלבל מנבכי הזיכרון, אבל חשוב לשמור את האוסף הזה בהישג יד ולהתייחס אליו מדי פעם לצורך הבהרה. אז אני מאחל לך בהצלחה ותהנה מקריאת המאמרים הנהדרים הללו. אגב, אל תשכח לשתף עוד כתבות "מה שכל מתכנת צריך לדעת" אם הם עדיין לא ברשימה שלנו.
מה שכל מתכנת צריך לדעת על זיכרון
תרגום לרוסית זהו אחד המאמרים הקלאסיים שידריכו אותך דרך תכונות הזיכרון, חלקן ישנות, חלקן חדשות, חלקן מפורסמות וחלקן פחות. למרות התפקיד הניהולי והנוכחות בכל מקום, לא לכל מתכנת יש רמה מספקת של ידע על זיכרון. החשיבות של היכרות עם זיכרון במערכות מודרניות עולה אם אתה עוסק בכתיבת יישומים בעלי ביצועים גבוהים. מעצבי חומרה מגיעים עם מודלים מורכבים יותר של ניהול זיכרון וטכניקות האצה, כגון מטמוני מעבד, אך אלה אינם יכולים לבצע ביצועים אופטימליים ללא עזרה מהמתכנתים. אני עדיין קורא את המאמר הזה, ואני לא יכול להגיד לך כמה למדתי ממנו על זיכרון RAM, מטמון CPU כגון L1 ו-L2 cache, סוגי זיכרון שונים, גישה ישירה לזיכרון, עיצוב בקר זיכרון וזיכרון בכלל . בקיצור, ספר חובה למתכנתים בכל רמה.מה שכל מדען צריך לדעת על אריתמטיקה של נקודה צפה
הנושא של חשבון נקודה צפה הוא מסובך ולא קל לשלוט בו. מתכנתי Java רבים אפילו לא יודעים מה יכול להשתבש כאשר משווים ערכים עם סוגfloat
/ double
אופרטור ==
. רבים מאיתנו טועים לעתים קרובות בעת יישום חישובים כספיים בסוגים float
ו double
. מאמר זה הוא פנינה נוספת של סדרה זו וחובה לקרוא לכל מפתחי תוכנה ומתכנתים. ככל שאתה צובר ניסיון, עליך להיכנס למורכבות של נושאים כלליים, וחשבון נקודה צפה היא אחד מהם. כמפתח ג'אווה בכיר, אתה צריך לדעת איך לעשות חישובים כספיים, מתי להשתמש float
, double
או BigDecimal
איך לעגל מספרי נקודה צפה ועוד הרבה יותר. גם אם יש לך ידע מוצק בנושא זה, לאחר קריאת המאמר אתה עשוי לגלות משהו חדש על פעולות נקודה צפה.
מה שכל מפתח צריך לדעת על Unicode
קידוד תווים הוא תחום נוסף שבו מתכנתים רבים נאבקים, ו"המינימום המוחלט שכל מפתח תוכנה צריך לדעת על Unicode ומערכות תווים (ללא תירוצים!)" שואף למלא את הפער הזה. לפרוטוקול, כן, זו הכותרת המלאה של מאמר זה. מחברו הוא יואל ספולסקי, ממייסדי https://stackoverflow.com . יואל כתב את המאמר הזה בבלוג שלו לפני כמעט 10 שנים, אבל הוא לא איבד מהרלוונטיות שלו בעולם המודרני. המאמר מסביר מהו Unicode, מהו קידוד, כיצד תווים מיוצגים באמצעות בתים ועוד הרבה יותר. אחד הדברים הטובים ביותר במאמר זה הוא שיטת השפה וההצגה, גם אם אינך יודע דבר על Unicode, לא תהיה לך בעיה להבין זאת. בקיצור, עוד חובה לקרוא לכל המתכנתים, המקודדים ומהנדסי התוכנה.מה שכל מתכנת צריך לדעת על זמן
מלבד קידוד תווים, זמן ותאריכים (Time
ו Date
) הם תחום נוסף שבו מתכנתים רבים, כולל אני, מתקשים. אפילו מפתחים בכירים הולכים לאיבוד ב-GMT, UTC, שעון קיץ ובשניות קפיצות. למען האמת, לא קל להתמודד עם אזורי זמן מבלי לעשות כמה טעויות, והשימוש בשעון הקיץ מקשה עוד יותר. הבעיות מחמירות אם אתה משתמש בניסוי וטעייה כי לעולם לא תוכל לפתור את הבעיה שלך על ידי כך. יש מספר עצום של דברים שיכולים להשתבש, ומספר שווה של תפיסות שגויות. דברים כמו אם תאריך מכיל אזור זמן או לא יכולים לבלבל אותך, המרת זמן UNIX לאזורי זמן אחרים יכולה לעצבן אותך, ואתה יכול בקלות לשכוח מסנכרון שעונים ועיכובים. אני מקווה שאחרי קריאת מאמר זה, הרבה מהתפיסות השגויות שלך לגבי זמן ייעלמו ותפתח הבנה מלאה של הזמן.
מה שכל מפתח אינטרנט צריך לדעת על קידוד כתובות אתרים
מאמר זה מתאר תפיסות שגויות נפוצות לגבי קידוד Uniform Resource Locator (URL), לאחר מכן מנסה להבהיר קידוד כתובת URL עבור HTTP, ולאחר מכן מדגים בעיות ופתרונות נפוצים. למרות שמאמר זה אינו ספציפי לאף שפת תכנות, הוא ממחיש בעיות ב-Java) ומסתיים בהסברים לתיקון בעיות בקידוד URL ב-Java, ובאפליקציות אינטרנט בכמה רמות. תלמדו דקדוק בסיסי של כתובות אתרים, תחביר כתובות אתרים כללי ב-HTTP ופרוטוקולים אחרים. מאמר זה עוסק גם במלכודות נפוצות של כתובות אתרים כגון קידוד תווים, תווים מיוחדים בחלקים שונים של כתובת אתר ובעיות בקידוד/פענוח כתובות אתרים. אם אתה מתכנת ג'אווה, תלמד גם כיצד לנהל נכון כתובות URL באפליקציית ג'אווה. כיצד לבנות כתובת URL ולהשתמש בספריית לקוח HTTP של Apache Commons. לבסוף, הוא מציע גם שיטות עבודה מומלצות והצעות לעבודה עם כתובות אתרים, כגון כיצד עליך לקודד כתובת אתר בעת בנייתה, לוודא שמסנני שכתוב כתובות האתרים שלך מטפלים בכתובות האתרים שלך בצורה נכונה ועוד. בקיצור, ספר חובה לכל מפתח ומתכנת אתרים.מה כל מתכנת יודע על פיתוח אתרים?
המאמר המעניין הזה של programmersStackExchange עוסק במה שכל מתכנת שמיישם את הפרטים הטכניים של יישום אינטרנט צריך לשקול לפני פתיחת אתר לציבור. הוא כולל דברים מהתחומים של עיצוב ממשק וחווית משתמש, אבטחה, תקני אינטרנט, ביצועים, אופטימיזציה למנועי חיפוש (SEO), טכנולוגיות בשימוש וכמה משאבים חשובים. העולם של היום תלוי במידה רבה באינטרנט וזה די נפוץ שלמתכנת יש אתר או בלוג אישיים. הניסיון שנצבר ממאמר זה יהיה שימושי לא רק בפעילויות המקצועיות שלך, אלא גם בפרויקטים שלך. תלמדו על כל טכנולוגיות המפתח כגון HTTP, HTML, XML, CSS, JavaScript, תאימות דפדפן, טיפים להפחתת זמן הטעינה של האתר שלכם, מפות אתר XML, מפרטי W3C ועוד מספר נקודות מפתח.מה שכל מתכנת צריך לדעת על SEO
זהו מאמר נוסף שיהיה שימושי למדי עבור מפתחי אתרים, מתכנתים ובלוגרים. קידום אתרים גדול מכדי להתעלם ממנו, וחשוב למתכנתים ובלוגרים רבים להכיר את היסודות של אופטימיזציה למנועי חיפוש כדי לעזור לגוגל למצוא את התוכן שלהם ולהראות אותו למתכנתים אחרים. מכיוון שאף חברה לא יכולה לשרוד בלי נוכחות באינטרנט בעולם המחובר של היום, SEO הופך להיות חשוב עוד יותר. אם יש לך סטארטאפ שמוכר מוצר כלשהו, אז קידום אתרים הוא משהו שאתה צריך לדאוג לו. כל המתכנתים, במיוחד מפתחי אתרים, יכולים להפיק תועלת רבה מהמאמר הזה. זכרו, אופטימיזציה למנועי חיפוש היא רחבה ודינאמית מאוד, ומשתנה בין מנועי חיפוש שונים, כמו גוגל, יאהו ואחרים. לכן, כדי לשלוט בנושא זה עליך תמיד לעדכן את הידע שלך.מה שכל מתכנת C צריך לדעת על התנהגות לא מוגדרת #1/3
לשפת התכנות C יש את המושג "התנהגות לא מוגדרת". התנהגות לא מוגדרת היא נושא רחב עם הרבה ניואנסים, וזו אחת הסיבות שאני אוהב ג'אווה: פחות התנהגות לא מוגדרת, פחות בלבול, יותר יציבות ויותר שלווה. להרבה דברים סבירים לכאורה ב-C יש למעשה התנהגות לא מוגדרת, וזהו מקור נפוץ לבאגים בתוכניות. בנוסף, כל התנהגות לא מוגדרת ב-C נותנת הרשאה למימושים (של המהדר וזמן הריצה) ליצור קוד שמעצב את הכונן הקשיח, עושה דברים בלתי צפויים לחלוטין, או גרוע מכך. קראו את המאמר המצוין הזה לצלילה עמוקה לתוך ים ההתנהגות הבלתי צפויה.מה שכל מתכנת צריך לדעת על רשתות
מתוך המאמר עצמו "אתה מתכנת. תהיתם פעם איך משחקים מרובי משתתפים עובדים? מבחוץ זה נראה קסום: שני שחקנים או יותר חולקים חוויה שיתופית באינטרנט, כאילו הם קיימים למעשה יחד באותו עולם וירטואלי. אבל איך "אנחנו יודעים את האמת, מתכנתים, שמה שקורה בפועל שונה לגמרי ממה שרואים. מסתבר שהכל אשליה". זה מאמר מאוד מעניין על נטוורקינג שנכתב עבור מתכנתי משחקים, אבל אני חושב שכל מתכנת ומפתח יכולים להפיק ממנו תועלת.מה שכל מפתח Java צריך לדעת על מחרוזות
זה המאמר שלי עלjava.lang.String
ובאופן אישי אני חושב שכל מתכנת ג'אווה צריך לדעת על זה. מחרוזות חשובות מאוד בתכנות ג'אווה היום-יומי ולכן ידע טוב הוא חובה לכל מפתח ג'אווה. מאמר זה מכסה היבטים חשובים רבים של מחרוזות, כולל מאגר המחרוזות, מיתרים של מחרוזות, השוואת מחרוזות עם ==
vs equals()
, המרת בתים למחרוזת, מדוע מחרוזת אינה ניתנת לשינוי, שרשרת מחרוזת נכונה ועוד הרבה יותר. מתכנת מתקדם אולי כבר מכיר את כל התכונות הללו, אבל למרות זאת יהיה זה רעיון טוב לסקור.
GO TO FULL VERSION