ในฐานะที่เป็นโปรแกรมเมอร์ Java และนักพัฒนาซอฟต์แวร์ ฉันได้เรียนรู้มากมายจากบทความมากมายที่ชื่อว่าสิ่งที่โปรแกรมเมอร์ทุกคนควรรู้เกี่ยวกับ.....พวกเขามักจะให้ข้อมูลที่เป็นประโยชน์และครอบคลุมมากมายเกี่ยวกับหัวข้อเฉพาะที่ยาก ค้นพบ. ในการแสวงหาความรู้ ฉันได้พบบทความที่มีประโยชน์มากซึ่งฉันได้บุ๊กมาร์กไว้เป็นข้อมูลอ้างอิงเพื่ออ่านซ้ำ แนวคิดที่ว่าโปรแกรมเมอร์จำนวนมากจะได้รับประโยชน์จากการอ่านคอลเลคชันนี้ ทำให้ฉันเขียนโพสต์นี้และแบ่งปันบทความ "สิ่งที่โปรแกรมเมอร์ทุกคนควรรู้" เหล่านี้กับคุณ ในบทความนี้ คุณจะคุ้นเคยกับชุด ความรู้
คลาสสิกที่โปรแกรมเมอร์ทุกคนต้องการ ในหัวข้อต่างๆ เช่นหน่วยความจำ , Unicodeเลขคณิตทศนิยมเครือข่ายการออกแบบเชิง วัตถุ ) เวลาการเข้ารหัส URL สตริงและอื่นๆ อีกมากมาย รายการนี้มีความสำคัญมากสำหรับผู้เริ่มต้นและผู้มาใหม่เนื่องจากมักขาดความรู้เชิงปฏิบัติ เนื่องจากบทความส่วนใหญ่อิงจากตัวอย่างในชีวิตจริง โปรแกรมเมอร์ระดับเริ่มต้นและระดับกลางจึงสามารถเรียนรู้ได้มากมายจากบทความเหล่านี้ นอกจากนี้ การเรียนรู้พื้นฐานตั้งแต่เนิ่นๆ ในอาชีพการงานของคุณจะช่วยให้คุณหลีกเลี่ยงข้อผิดพลาดที่โปรแกรมเมอร์และนักพัฒนาซอฟต์แวร์คนอื่นๆ ได้ทำไว้แล้วในเส้นทางการเรียนรู้ของพวกเขา น่าเสียดายที่ข้อมูลบางส่วนจากบทความที่อธิบายไว้ไม่สามารถย่อยได้ง่ายตั้งแต่การอ่านครั้งแรก เป็นไปได้ว่าคุณอาจไม่เข้าใจรายละเอียดบางอย่างเกี่ยวกับจำนวนจุดลอยตัวในทันที หรือคุณอาจสับสนกับความซับซ้อนของหน่วยความจำ แต่สิ่งสำคัญคือต้องเก็บคอลเลกชันนี้ไว้ใกล้มือและอ้างอิงเป็นครั้งคราวเพื่อให้เกิดความกระจ่าง ฉันขอให้คุณโชคดีและสนุกกับการอ่านบทความดีๆเหล่านี้ อย่าลืมแบ่งปันบทความ "สิ่งที่โปรแกรมเมอร์ทุกคนควรรู้" อื่น ๆ หากไม่ได้อยู่ในรายการของเรา
สิ่งที่โปรแกรมเมอร์ทุกคนควรรู้เกี่ยวกับหน่วยความจำ
แปลเป็นภาษารัสเซีย นี่คือหนึ่งในบทความคลาสสิกที่จะแนะนำคุณเกี่ยวกับคุณสมบัติของหน่วยความจำซึ่งบางอันก็เก่าบางอันใหม่บางอันมีชื่อเสียงและบางอันก็ไม่มากนัก แม้จะมีบทบาทการบริหารจัดการและการอยู่ทั่วไปทุกหนทุกแห่ง แต่ไม่ใช่ว่าโปรแกรมเมอร์ทุกคนจะมีความรู้เกี่ยวกับหน่วยความจำในระดับที่เพียงพอ ความสำคัญของการทำความคุ้นเคยกับหน่วยความจำในระบบสมัยใหม่จะเพิ่มขึ้นหากคุณอยู่ในธุรกิจการเขียนแอปพลิเคชันประสิทธิภาพสูง นักออกแบบฮาร์ดแวร์กำลังคิดค้นโมเดลการจัดการหน่วยความจำที่ซับซ้อนยิ่งขึ้นและเทคนิคการเร่งความเร็ว เช่น แคช CPU แต่สิ่งเหล่านี้ไม่สามารถทำงานได้อย่างเหมาะสมที่สุดหากไม่ได้รับความช่วยเหลือจากโปรแกรมเมอร์ ฉันยังคงอ่านบทความนี้อยู่ และฉันไม่สามารถบอกคุณได้ว่าฉันได้เรียนรู้มากแค่ไหนเกี่ยวกับ RAM, แคช CPU เช่น แคช L1 และ L2, หน่วยความจำประเภทต่างๆ, การเข้าถึงหน่วยความจำโดยตรง, การออกแบบตัวควบคุมหน่วยความจำ และหน่วยความจำโดยทั่วไป . สรุปคือโปรแกรมเมอร์ทุกระดับต้องอ่านสิ่งที่นักวิทยาศาสตร์ทุกคนควรรู้เกี่ยวกับเลขคณิตจุดลอยตัว
หัวข้อเลขคณิตจุดลอยตัวนั้นยุ่งยากและไม่ง่ายที่จะเชี่ยวชาญ โปรแกรมเมอร์ Java หลายคนไม่รู้ด้วยซ้ำว่าจะเกิดอะไรขึ้นเมื่อเปรียบเทียบค่ากับประเภทfloat
/ โอเป อdouble
เรเตอร์ ==
พวกเราหลายคนมักทำผิดพลาดเมื่อใช้การคำนวณทางการเงินในรูปแบบfloat
และdouble
. บทความนี้เป็นอีกหนึ่งอัญมณีของซีรี่ส์นี้ และนักพัฒนาซอฟต์แวร์และโปรแกรมเมอร์ทุกคนต้องอ่าน เมื่อคุณได้รับประสบการณ์ คุณควรเจาะลึกถึงความซับซ้อนของหัวข้อทั่วไป และเลขคณิตทศนิยมก็เป็นหนึ่งในนั้น ในฐานะนักพัฒนา Java อาวุโส คุณควรรู้วิธีการคำนวณทางการเงิน เมื่อใดควรใช้หรือวิธีปัดเศษตัวเลขทศนิยม และอื่นๆ อีกfloat
มากมาย แม้ว่าคุณจะมีความรู้ที่มั่นคงในหัวข้อนี้ แต่หลังจากอ่านบทความแล้ว คุณอาจค้นพบสิ่งใหม่เกี่ยวกับการดำเนินการจุดลอยตัว double
BigDecimal
สิ่งที่ Developer ทุกคนควรรู้เกี่ยวกับ Unicode
การเข้ารหัสอักขระเป็นอีกพื้นที่หนึ่งที่โปรแกรมเมอร์จำนวนมากต้องดิ้นรน และ"ขั้นต่ำที่แน่นอนที่นักพัฒนาซอฟต์แวร์ทุกคนควรรู้อย่างแน่นอนเกี่ยวกับ Unicode และชุดอักขระ (ไม่มีข้อแก้ตัว!)"มีจุดมุ่งหมายเพื่อเติมเต็มช่องว่างนั้น สำหรับบันทึก ใช่ นี่คือชื่อเต็มของบทความนี้ ผู้เขียนคือ Joel Spolsky หนึ่งในผู้ก่อตั้งhttps://stackoverflow.com Joel เขียนบทความนี้ในบล็อกของเขาเมื่อเกือบ 10 ปีที่แล้ว แต่ก็ไม่ได้สูญเสียความเกี่ยวข้องในโลกสมัยใหม่ บทความนี้จะอธิบายว่า Unicode คืออะไร การเข้ารหัสคืออะไร วิธีแสดงอักขระโดยใช้ไบต์ และอื่นๆ อีกมากมาย หนึ่งในสิ่งที่ดีที่สุดเกี่ยวกับบทความนี้คือภาษาและวิธีการนำเสนอ แม้ว่าคุณจะไม่รู้อะไรเกี่ยวกับ Unicode เลย คุณก็จะไม่มีปัญหาในการทำความเข้าใจมัน กล่าวโดยสรุป อีกอย่างหนึ่งต้องอ่านสำหรับโปรแกรมเมอร์ ผู้เขียนโค้ด และวิศวกรซอฟต์แวร์ทุกคนสิ่งที่โปรแกรมเมอร์ทุกคนควรรู้เกี่ยวกับเวลา
นอกจากการเข้ารหัสอักขระแล้ว เวลาและวันที่ (Time
และDate
) ยังเป็นอีกพื้นที่หนึ่งที่โปรแกรมเมอร์หลายคนรวมทั้งตัวฉันเองประสบปัญหาด้วย แม้แต่นักพัฒนาอาวุโสก็ยังหลงทางในเวลา GMT, UTC, เวลาออมแสง และวินาทีกระโดด พูดตามตรง การจัดการกับเขตเวลาโดยไม่ทำผิดพลาดไม่ใช่เรื่องง่าย และการใช้เวลาออมแสงจะทำให้ยากยิ่งขึ้น ปัญหาจะแย่ลงหากคุณใช้การลองผิดลองถูก เพราะคุณจะไม่สามารถแก้ไขปัญหาด้วยการทำเช่นนี้ได้ มีหลายสิ่งหลายอย่างที่อาจผิดพลาดได้ และมีความเข้าใจผิดจำนวนเท่ากัน สิ่งต่างๆ เช่น วันที่มีเขตเวลาหรือไม่จะทำให้คุณสับสน การแปลงเวลา UNIX ไปเป็นเขตเวลาอื่นอาจทำให้คุณหงุดหงิด และคุณสามารถลืมเรื่องการซิงโครไนซ์นาฬิกาและความล่าช้าได้อย่างง่ายดาย ฉันหวังว่าหลังจากอ่านบทความนี้แล้ว ความเข้าใจผิดหลายประการเกี่ยวกับเวลาจะหายไป และคุณจะพัฒนาความเข้าใจเรื่องเวลาอย่างสมบูรณ์
สิ่งที่นักพัฒนาเว็บทุกคนควรรู้เกี่ยวกับการเข้ารหัส URL
บทความนี้อธิบายความเข้าใจผิดทั่วไปเกี่ยวกับการเข้ารหัส Uniform Resource Locator (URL) จากนั้นพยายามชี้แจงการเข้ารหัส URL สำหรับ HTTP จากนั้นสาธิตปัญหาและวิธีแก้ไขทั่วไป แม้ว่าบทความนี้จะไม่เฉพาะเจาะจงกับภาษาการเขียนโปรแกรมใดๆ แต่ก็แสดงให้เห็นปัญหาใน Java) และจบลงด้วยคำอธิบายสำหรับการแก้ไขปัญหาการเข้ารหัส URL ใน Java และในเว็บแอปพลิเคชันในหลายระดับ คุณจะได้เรียนรู้ไวยากรณ์ URL พื้นฐาน ไวยากรณ์ URL ทั่วไปใน HTTP และโปรโตคอลอื่นๆ บทความนี้ยังครอบคลุมถึงข้อผิดพลาดทั่วไปของ URL เช่น การเข้ารหัสอักขระ อักขระพิเศษในส่วนต่างๆ ของ URL และปัญหาการเข้ารหัส/ถอดรหัส URL หากคุณเป็นโปรแกรมเมอร์ Java คุณจะได้เรียนรู้วิธีจัดการ URL ในแอปพลิเคชัน Java อย่างเหมาะสม วิธีสร้าง URL และใช้ไลบรารีไคลเอ็นต์ Apache Commons HTTP สุดท้ายนี้ ยังนำเสนอแนวทางปฏิบัติที่ดีที่สุดและคำแนะนำสำหรับการทำงานกับ URL เช่น วิธีที่คุณควรเข้ารหัส URL เมื่อสร้าง URL การตรวจสอบให้แน่ใจว่าตัวกรองการเขียน URL ของคุณจัดการ URL ของคุณอย่างถูกต้อง และอื่นๆ อีกมากมาย กล่าวโดยสรุป นักพัฒนาเว็บและโปรแกรมเมอร์ทุกคนต้องอ่านโปรแกรมเมอร์ทุกคนรู้อะไรเกี่ยวกับการพัฒนาเว็บบ้าง
บทความที่น่าสนใจจากโปรแกรมเมอร์StackExchange เป็นเรื่องเกี่ยวกับสิ่งที่โปรแกรมเมอร์ทุกคนที่ใช้รายละเอียดทางเทคนิคของเว็บแอปพลิเคชันควรพิจารณาก่อนเปิดไซต์สู่สาธารณะ ประกอบด้วยสิ่งต่างๆ จากขอบเขตของการออกแบบส่วนต่อประสานและประสบการณ์ผู้ใช้ ความปลอดภัย มาตรฐานเว็บ ประสิทธิภาพ การปรับแต่งเว็บไซต์ให้ติดอันดับบนเครื่องมือการค้นหา (SEO) เทคโนโลยีที่ใช้ และทรัพยากรที่สำคัญบางประการ โลกปัจจุบันส่วนใหญ่ขึ้นอยู่กับอินเทอร์เน็ต และเป็นเรื่องปกติที่โปรแกรมเมอร์จะมีเว็บไซต์หรือบล็อกส่วนตัว ประสบการณ์ที่ได้รับจากบทความนี้จะมีประโยชน์ไม่เพียงแต่ในกิจกรรมทางวิชาชีพของคุณเท่านั้น แต่ยังมีประโยชน์ในโครงการของคุณด้วย คุณจะได้เรียนรู้เกี่ยวกับเทคโนโลยีที่สำคัญทั้งหมด เช่น HTTP, HTML, XML, CSS, JavaScript, ความเข้ากันได้ของเบราว์เซอร์, เคล็ดลับในการลดเวลาในการโหลดเว็บไซต์ของคุณ, แผนผังเว็บไซต์ XML, ข้อกำหนด W3C และประเด็นสำคัญอื่นๆ หลายประการสิ่งที่โปรแกรมเมอร์ทุกคนควรรู้เกี่ยวกับ SEO
นี่เป็นอีกบทความที่ค่อนข้างมีประโยชน์สำหรับนักพัฒนาเว็บ โปรแกรมเมอร์ และบล็อกเกอร์ SEO นั้นใหญ่เกินกว่าจะเพิกเฉยได้ และสำหรับโปรแกรมเมอร์และบล็อกเกอร์จำนวนมาก สิ่งสำคัญคือต้องรู้พื้นฐานของการเพิ่มประสิทธิภาพกลไกค้นหา เพื่อช่วยให้ Google ค้นหาเนื้อหาของตนและแสดงให้เพื่อนโปรแกรมเมอร์เห็น เนื่องจากไม่มีบริษัทใดสามารถอยู่รอดได้หากไม่มีเว็บไซต์ในโลกที่เชื่อมต่อถึงกันในปัจจุบัน SEO จึงมีความสำคัญมากยิ่งขึ้น หากคุณมีธุรกิจสตาร์ทอัพขายสินค้าใดๆ SEO ก็เป็นสิ่งที่คุณควรดูแล โปรแกรมเมอร์ทุกคน โดยเฉพาะนักพัฒนาเว็บ จะได้รับประโยชน์อย่างมากจากบทความนี้ โปรดจำไว้ว่า การปรับแต่งเว็บไซต์ให้ติดอันดับบนเครื่องมือการค้นหานั้นกว้างๆ และมีการเปลี่ยนแปลงตลอดเวลา และแตกต่างกันไปตามเครื่องมือค้นหาต่างๆ เช่น Google, Yahoo และอื่นๆ ดังนั้นเพื่อที่จะเชี่ยวชาญหัวข้อนี้ คุณต้องอัปเดตความรู้ของคุณอยู่เสมอสิ่งที่โปรแกรมเมอร์ C ทุกคนควรรู้เกี่ยวกับพฤติกรรมที่ไม่ได้กำหนด #1/3
ภาษาโปรแกรม C มีแนวคิดเรื่อง "พฤติกรรมที่ไม่ได้กำหนด" พฤติกรรมที่ไม่ได้กำหนดเป็นหัวข้อกว้างๆ ที่มีความแตกต่างเล็กน้อย และเป็นหนึ่งในเหตุผลที่ฉันชอบ Java: พฤติกรรมที่ไม่ได้กำหนดน้อยลง ความสับสนน้อยลง ความเสถียรมากขึ้น และความสงบสุขมากขึ้น สิ่งต่างๆ ที่ดูเหมือนสมเหตุสมผลในภาษา C จริงๆ แล้วมีพฤติกรรมที่ไม่ได้กำหนดไว้ และนี่คือต้นตอของข้อบกพร่องในโปรแกรมทั่วไป นอกจากนี้ พฤติกรรมที่ไม่ได้กำหนดไว้ใน C ให้สิทธิ์ในการใช้งาน (ของคอมไพเลอร์และรันไทม์) เพื่อสร้างโค้ดที่ฟอร์แมตฮาร์ดไดรฟ์ ทำสิ่งที่ไม่คาดคิดโดยสิ้นเชิง หรือแย่กว่านั้น อ่านบทความที่ยอดเยี่ยมนี้เพื่อดำดิ่งลงสู่ทะเลแห่งพฤติกรรมที่คาดเดาไม่ได้สิ่งที่โปรแกรมเมอร์ทุกคนต้องรู้เกี่ยวกับเครือข่าย
จากบทความ "คุณเป็นโปรแกรมเมอร์ คุณเคยสงสัยหรือไม่ว่าเกมที่มีผู้เล่นหลายคนทำงานอย่างไร จากภายนอก ดูเหมือนว่ามหัศจรรย์: ผู้เล่นสองคนขึ้นไปแบ่งปันประสบการณ์การทำงานร่วมกันทางออนไลน์ ราวกับว่าพวกเขาอยู่ด้วยกันจริง ๆ ในโลกเสมือนจริงใบเดียวกัน แต่วิธีที่ "เรารู้ความจริงแล้ว โปรแกรมเมอร์ ว่าสิ่งที่เกิดขึ้นจริงนั้นค่อนข้างแตกต่างไปจากสิ่งที่คุณเห็น ปรากฎว่าทั้งหมดเป็นเพียงภาพลวงตา" นี่เป็นบทความที่น่าสนใจมากเกี่ยวกับระบบเครือข่ายที่เขียนขึ้นสำหรับโปรแกรมเมอร์เกม แต่ฉันคิดว่าโปรแกรมเมอร์และนักพัฒนาทุกคนจะได้รับประโยชน์จากบทความนี้สิ่งที่ Java Developer ทุกคนควรรู้เกี่ยวกับ Strings
นี่คือบทความของฉันjava.lang.String
และโดยส่วนตัวแล้วฉันคิดว่าโปรแกรมเมอร์ Java ทุกคนควรรู้เกี่ยวกับเรื่องนี้ Strings มีความสำคัญมากในการเขียนโปรแกรม Java ในแต่ละวัน และนั่นคือเหตุผลว่าทำไมความรู้ที่ดีจึงเป็นสิ่งจำเป็นสำหรับนักพัฒนา Java ทุกคน บทความนี้ครอบคลุมแง่มุมที่สำคัญหลายประการของ Strings รวมถึงพูลสตริง ตัวอักษรสตริง การเปรียบเทียบสตริงกับ==
vs equals()
การแปลงไบต์เป็นสตริง สาเหตุที่สตริงไม่เปลี่ยนรูป การต่อสตริงอย่างเหมาะสม และอื่นๆ อีกมากมาย โปรแกรมเมอร์ขั้นสูงอาจรู้คุณสมบัติเหล่านี้ทั้งหมดแล้ว แต่ถึงอย่างนั้นก็ควรทบทวน
GO TO FULL VERSION