JavaRush /وبلاگ جاوا /Random-FA /10 مقاله ای که هر برنامه نویسی باید بخواند
Shoggy
مرحله
Санкт-Петербург

10 مقاله ای که هر برنامه نویسی باید بخواند

در گروه منتشر شد
من به عنوان یک برنامه نویس جاوا و توسعه دهنده نرم افزار، از بسیاری از مقالات با عنوان آنچه که هر برنامه نویس باید درباره آن بداند، چیزهای زیادی آموخته ام ، آنها تمایل دارند اطلاعات مفید و جامع زیادی را در مورد یک موضوع خاص ارائه دهند که در غیر این صورت ارائه آن دشوار است. كشف كردن. در جستجوی دانش، به مقالات بسیار مفیدی برخوردم که آنها را به عنوان اطلاعات مرجع برای بازخوانی نشانه گذاری کرده ام. این ایده که بسیاری از برنامه نویسان می توانند از خواندن این مجموعه بهره ببرند، مرا بر آن داشت تا این پست را بنویسم و ​​تمام این مقالات "آنچه هر برنامه نویس باید بداند" را با شما به اشتراک بگذارم. 10 مقاله ای که هر برنامه نویسی باید بخواند - 1در این مقاله با مجموعه دانش کلاسیک مورد نیاز هر برنامه نویسی در موضوعاتی مانند حافظه ، یونیکد ، محاسبات ممیز شناور ، شبکه ، طراحی شی گرا)، زمان ، کدگذاری URL ، رشته و بسیاری دیگر آشنا می شوید. این لیست برای مبتدیان و تازه واردان بسیار مهم است زیرا آنها اغلب فاقد دانش عملی هستند. از آنجایی که بیشتر مقاله ها بر اساس مثال های واقعی هستند، برنامه نویسان سطح ابتدایی و متوسط ​​می توانند چیزهای زیادی از آنها بیاموزند. همچنین، یادگیری اصول اولیه در ابتدای کار به شما کمک می کند از اشتباهاتی که دیگر برنامه نویسان و توسعه دهندگان نرم افزار قبلاً در مسیر یادگیری خود مرتکب شده اند، اجتناب کنید. متأسفانه، همه اطلاعات مقالات شرح داده شده از اولین مطالعه به راحتی قابل هضم نیستند. به احتمال زیاد ممکن است فوراً برخی از جزئیات مربوط به اعداد ممیز شناور را متوجه نشوید، یا ممکن است با پیچیدگی های حافظه گیج شوید، اما مهم است که این مجموعه را در دسترس داشته باشید و هر از چند گاهی برای شفاف سازی به آن مراجعه کنید. بنابراین برای شما آرزوی موفقیت دارم و از خواندن این مقالات عالی لذت ببرید. به هر حال، فراموش نکنید که سایر مقالات «آنچه هر برنامه نویس باید بداند» را به اشتراک بگذارید، اگر قبلاً در لیست ما نیست.

آنچه هر برنامه نویسی باید در مورد حافظه بداند

ترجمه به روسی این یکی از مقالات کلاسیکی است که شما را از طریق ویژگی های حافظه راهنمایی می کند، برخی از آنها قدیمی، برخی جدید، برخی معروف و برخی نه چندان زیاد هستند. علیرغم نقش مدیریتی و حضور همه جانبه، هر برنامه نویسی از دانش کافی در مورد حافظه برخوردار نیست. اگر در زمینه نوشتن برنامه های کاربردی با کارایی بالا هستید، اهمیت آشنایی با حافظه در سیستم های مدرن افزایش می یابد. طراحان سخت‌افزار در حال ارائه مدل‌های مدیریت حافظه پیچیده‌تر و تکنیک‌های شتاب، مانند حافظه پنهان CPU هستند، اما بدون کمک برنامه‌نویسان نمی‌توانند عملکرد مطلوبی داشته باشند. من هنوز دارم این مقاله را می خوانم و نمی توانم به شما بگویم که چقدر از آن در مورد رم، کش های CPU مانند حافظه نهان L1 و L2، انواع مختلف حافظه، دسترسی مستقیم به حافظه، طراحی کنترلر حافظه و به طور کلی حافظه از آن یاد گرفتم. . به طور خلاصه، برای برنامه نویسان در هر سطحی باید بخوانید.

آنچه هر دانشمندی باید در مورد محاسبات ممیز شناور بداند

مبحث محاسبات ممیز شناور پیچیده است و تسلط بر آن آسان نیست. بسیاری از برنامه نویسان جاوا حتی نمی دانند هنگام مقایسه مقادیر با نوع float/ doubleعملگر چه مشکلی ممکن است رخ دهد ==. بسیاری از ما معمولاً هنگام اجرای محاسبات پولی در انواع floatو double. این مقاله یکی دیگر از جواهرات این مجموعه است و خواندن آن برای همه توسعه دهندگان و برنامه نویسان نرم افزار ضروری است. با کسب تجربه، باید به پیچیدگی‌های مباحث عمومی بپردازید و محاسبات ممیز شناور یکی از آنهاست. به عنوان یک توسعه‌دهنده ارشد جاوا، باید بدانید که چگونه محاسبات پولی را انجام دهید، چه زمانی از آن استفاده کنید float، doubleیا BigDecimalچگونه اعداد ممیز شناور را گرد کنید، و موارد دیگر. حتی اگر دانش کاملی در مورد این موضوع دارید، پس از خواندن مقاله ممکن است چیز جدیدی در مورد عملیات ممیز شناور کشف کنید.

آنچه که هر توسعه دهنده باید در مورد یونیکد بداند

رمزگذاری کاراکتر زمینه دیگری است که بسیاری از برنامه نویسان در آن با مشکل مواجه هستند، و "حداقل مطلق که هر توسعه دهنده نرم افزار باید کاملاً درباره یونیکد و مجموعه کاراکترها بداند (بدون بهانه!)" قصد دارد این شکاف را پر کند. برای ثبت، بله، این عنوان کامل این مقاله است. نویسنده آن جوئل اسپولسکی، یکی از بنیانگذاران https://stackoverflow.com است . جوئل این مقاله را تقریبا 10 سال پیش در وبلاگ خود نوشت، اما ارتباط خود را در دنیای مدرن از دست نداده است. این مقاله توضیح می‌دهد که یونیکد چیست، رمزگذاری چیست، کاراکترها چگونه با استفاده از بایت‌ها نمایش داده می‌شوند و موارد دیگر. یکی از بهترین چیزهای این مقاله زبان و روش ارائه است، حتی اگر چیزی در مورد یونیکد ندانید، برای درک آن مشکلی نخواهید داشت. به طور خلاصه، یکی دیگر باید برای همه برنامه نویسان، برنامه نویسان و مهندسان نرم افزار بخواند.

آنچه هر برنامه نویسی باید در مورد زمان بداند

علاوه بر رمزگذاری کاراکترها، زمان و تاریخ ( Timeو Date) یکی دیگر از زمینه‌هایی است که بسیاری از برنامه‌نویسان، از جمله من، در آن با مشکل مواجه هستند. حتی توسعه دهندگان ارشد نیز در GMT، UTC، ساعت تابستانی و ثانیه های کبیسه گم می شوند. صادقانه بگویم، مقابله با مناطق زمانی بدون انجام برخی اشتباهات آسان نیست و استفاده از ساعت تابستانی کار را دشوارتر می کند. اگر از آزمون و خطا استفاده کنید مشکلات بدتر می شوند زیرا هرگز نمی توانید با این کار مشکل خود را حل کنید. تعداد زیادی چیز وجود دارد که ممکن است اشتباه پیش برود و به همان اندازه تصورات غلط وجود دارد. مواردی مانند اینکه آیا یک تاریخ دارای منطقه زمانی است یا نه می تواند شما را گیج کند، تبدیل زمان یونیکس به مناطق زمانی دیگر می تواند شما را آزار دهد و به راحتی می توانید همگام سازی ساعت ها و تاخیرها را فراموش کنید. امیدوارم پس از مطالعه این مقاله، بسیاری از تصورات غلط شما در مورد زمان از بین برود و درک کاملی از زمان به دست آورید.

آنچه که هر توسعه دهنده وب باید در مورد رمزگذاری URL بداند

این مقاله تصورات غلط رایج در مورد رمزگذاری Uniform Resource Locator (URL) را شرح می دهد، سپس سعی می کند رمزگذاری URL برای HTTP را روشن کند، و سپس مشکلات و راه حل های رایج را نشان می دهد. اگرچه این مقاله مختص هیچ زبان برنامه نویسی نیست، اما مشکلات در جاوا را نشان می دهد) و با توضیحاتی برای رفع مشکلات رمزگذاری URL در جاوا و در برنامه های وب در سطوح مختلف به پایان می رسد. شما گرامر اولیه URL، نحو عمومی URL در HTTP و سایر پروتکل ها را یاد خواهید گرفت. این مقاله همچنین مشکلات رایج URL مانند رمزگذاری کاراکتر، کاراکترهای خاص در بخش‌های مختلف URL، و مشکلات رمزگذاری/رمزگشایی URL را پوشش می‌دهد. اگر یک برنامه نویس جاوا هستید، نحوه مدیریت صحیح URL ها در یک برنامه جاوا را نیز یاد خواهید گرفت. چگونه یک URL بسازیم و از کتابخانه سرویس گیرنده Apache Commons HTTP استفاده کنیم. در نهایت، بهترین روش‌ها و پیشنهادات را برای کار با URL‌ها ارائه می‌دهد، از جمله اینکه چگونه باید URL را هنگام ساختن آن رمزگذاری کنید، مطمئن شوید که فیلترهای بازنویسی URL شما به درستی آدرس‌های شما را مدیریت می‌کنند و موارد دیگر. به طور خلاصه، خواندن آن برای هر توسعه دهنده و برنامه نویس وب ضروری است.

هر برنامه نویسی در مورد توسعه وب چه می داند؟

این مقاله جالب از programmersStackExchange در مورد این است که هر برنامه نویسی که جزئیات فنی یک برنامه وب را اجرا می کند قبل از باز کردن یک سایت برای عموم باید در نظر داشته باشد. این شامل مواردی از حوزه‌های طراحی رابط و تجربه کاربر، امنیت، استانداردهای وب، عملکرد، بهینه‌سازی موتورهای جستجو (SEO)، فناوری‌های مورد استفاده و برخی منابع مهم است. دنیای امروز تا حد زیادی به اینترنت وابسته است و برای یک برنامه نویس کاملاً معمول است که یک وب سایت یا وبلاگ شخصی داشته باشد. تجربه به دست آمده از این مقاله نه تنها در فعالیت های حرفه ای شما، بلکه در پروژه های خودتان نیز مفید خواهد بود. با تمام فناوری های کلیدی مانند HTTP، HTML، XML، CSS، جاوا اسکریپت، سازگاری مرورگر، نکاتی برای کاهش زمان بارگذاری سایت، نقشه های سایت XML، مشخصات W3C و چندین نکته کلیدی دیگر آشنا خواهید شد.

آنچه هر برنامه نویسی باید در مورد سئو بداند

این مقاله دیگری است که برای توسعه دهندگان وب، برنامه نویسان و وبلاگ نویسان بسیار مفید خواهد بود. سئو خیلی بزرگ است که نمی توان آن را نادیده گرفت و برای بسیاری از برنامه نویسان و وبلاگ نویسان دانستن اصول بهینه سازی موتور جستجو برای کمک به گوگل برای یافتن محتوای آنها و نمایش آن به برنامه نویسان دیگر مهم است. از آنجایی که هیچ شرکتی بدون حضور وب در دنیای متصل امروزی نمی تواند دوام بیاورد، سئو اهمیت بیشتری پیدا می کند. اگر استارتاپی دارید که هر محصولی را می فروشد، سئو چیزی است که باید از آن مراقبت کنید. همه برنامه نویسان به ویژه توسعه دهندگان وب می توانند از این مقاله بهره زیادی ببرند. به یاد داشته باشید، بهینه سازی موتورهای جستجو گسترده و بسیار پویا است و در موتورهای جستجوی مختلف مانند گوگل، یاهو و سایرین متفاوت است. بنابراین، برای تسلط بر این موضوع باید همیشه دانش خود را به روز کنید.

آنچه هر برنامه نویس C باید در مورد رفتار تعریف نشده شماره 1/3 بداند

زبان برنامه نویسی C مفهوم "رفتار تعریف نشده" را دارد. رفتار تعریف نشده موضوعی گسترده با تفاوت های ظریف است و یکی از دلایلی است که من جاوا را دوست دارم: رفتار تعریف نشده کمتر، سردرگمی کمتر، ثبات بیشتر و آرامش بیشتر. بسیاری از چیزهای به ظاهر معقول در C در واقع رفتار نامشخصی دارند و این یک منبع رایج اشکالات در برنامه ها است. به‌علاوه، هر رفتار تعریف‌نشده در C به پیاده‌سازی‌ها (کامپایلر و زمان اجرا) اجازه می‌دهد تا کدی را تولید کنند که دیسک سخت را فرمت می‌کند، کارهای کاملاً غیرمنتظره یا بدتر از آن را انجام می‌دهد. این مقاله عالی را برای غواصی عمیق در دریای رفتارهای غیرقابل پیش بینی بخوانید.

آنچه هر برنامه نویسی باید در مورد شبکه بداند

از خود مقاله "شما یک برنامه نویس هستید. آیا تا به حال به این فکر کرده اید که بازی های چند نفره چگونه کار می کنند؟ از بیرون، جادویی به نظر می رسد: دو یا چند بازیکن یک تجربه مشترک را به صورت آنلاین به اشتراک می گذارند، گویی واقعاً با هم در یک دنیای مجازی وجود دارند. اما چگونه "ما حقیقت را می دانیم، برنامه نویسان، که آنچه در واقع اتفاق می افتد کاملاً با آنچه می بینید متفاوت است. معلوم می شود که همه اینها یک توهم است." این یک مقاله بسیار جالب در مورد شبکه است که برای برنامه نویسان بازی نوشته شده است، اما فکر می کنم هر برنامه نویس و توسعه دهنده ای می تواند از آن بهره مند شود.

آنچه که هر توسعه دهنده جاوا باید در مورد رشته ها بداند

این مقاله من در مورد آن است java.lang.Stringو شخصاً فکر می کنم هر برنامه نویس جاوا باید در مورد آن بداند. رشته ها در برنامه نویسی روزمره جاوا بسیار مهم هستند و به همین دلیل است که دانش خوب برای هر توسعه دهنده جاوا ضروری است. این مقاله بسیاری از جنبه‌های مهم رشته‌ها را پوشش می‌دهد، از جمله مجموعه رشته‌ها، حروف الفبای رشته‌ها، مقایسه رشته‌ها با ==vs equals()، تبدیل بایت‌ها به یک رشته، چرایی تغییرناپذیر بودن یک رشته، الحاق رشته‌ها به درستی، و موارد دیگر. یک برنامه نویس پیشرفته ممکن است از قبل همه این ویژگی ها را بداند، اما با این وجود، بررسی آن ایده خوبی است.

آنچه هر برنامه نویسی باید در مورد امنیت بداند؟

این سوال توسط یک دانش آموز برنامه نویس در StackOverflow پرسیده شده است. همانطور که ما در مورد مفاهیم عمومی برنامه نویسی مانند سیستم عامل، الگوریتم ها، ساختارهای داده، معماری کامپیوتر و موارد دیگر اطلاعات زیادی داریم، دانستن در مورد امنیت نیز مهم است. اگرچه موضوع امنیت بسیار گسترده است، و حوزه‌های رمزگذاری/رمزگشایی، SSL، امنیت وب، مبهم‌سازی، احراز هویت، مجوز و غیره را پوشش می‌دهد، حداقل دانش اولیه مورد نیاز برای هر برنامه‌نویسی وجود دارد. شخصاً در ابتدای کارم چیز زیادی در مورد امنیت نمی دانستم، زمانی که شروع به نوشتن برنامه وب جاوا مبتنی بر Servlet/JSP کردم، با امنیت وب و تعدادی از تهدیدات امنیتی مانند تزریق SQL، Denial of Service، XML آشنا شدم. تزریق، اسکریپت بین سایتی و موارد دیگر. به عنوان یک توسعه دهنده جاوا، من اکنون از روش های برنامه نویسی ایمن جاوا که توسط Fortify، PMP و سایر ارائه دهندگان تحلیلگر کد استاتیک ارائه شده است، پیروی می کنم. این مقاله شامل مجموعه بسیار خوبی از موضوعات و لینک های امنیتی است و چه کدنویسی کنید یا نه، مطمئنا از این منبع بهره مند خواهید شد.

اعداد تاخیری که هر برنامه نویسی باید بداند

این مقاله یک امتیاز است، اما، با این وجود، خواندن آن برای هر برنامه نویسی ضروری است. برای نوشتن یک برنامه کاربردی با کارایی بالا در هر زبان برنامه نویسی، چه جاوا یا C++، باید مقادیر تاخیر اولیه را بدانید، به عنوان مثال، مدت زمان لازم برای خواندن یک متغیر از حافظه، از حافظه نهان L1، از حافظه نهان L2، برای خواندن تصادفی از یک SSD و از دیسک. قفل/باز کردن قفل mutex برای ارسال یک بسته داده از شهری به شهر دیگر یا انجام یک رفت و برگشت در یک مرکز داده چقدر طول می کشد. این مقادیر تأخیر مستقل از زبان برنامه نویسی هستند و بخشی از دانش اولیه ای هستند که یک توسعه دهنده برای نوشتن برنامه های با بار بالا و تأخیر کم باید داشته باشد. نکته مثبت در مورد این پیوند این است که تجزیه و تحلیل مقایسه ای از چگونگی تکامل این ارزش ها در طول سال ها ارائه می دهد. می توانید ببینید که ارزش ها در سال 2006 چه بوده و اکنون چه هستند. این همه برای این لیست از مقالاتی است که هر برنامه نویسی باید بخواند. با خواندن مقالاتی مانند آنچه هر برنامه نویس یا توسعه دهنده باید بداند، دانش خود را در مورد یک موضوع خاص عمیق تر می کنید. راستش را بخواهید، چیزهای زیادی برای یادگیری برنامه نویسان وجود دارد، و یادگیری یک زبان برنامه نویسی مانند جاوا فقط نوک کوه یخ است، اما آیا اکثر ما علاقه زیادی به یادگیری نداریم. برنامه نویسی شغلی است که مستلزم پیشرفت مداوم است و تنها چیزهایی که برای هر برنامه نویسی در طول حرفه اش مفید خواهد بود، دانش بنیادی از مواردی مانند حافظه ، یونیکد ، اعداد ممیز شناور ، زمان ، امنیت (امنیت) است . برخی چیزها مختص زبان هستند، مانند پست من در String در جاوا و آنچه هر برنامه نویس C باید درباره رفتار نامشخص بداند، اما یادگیری آنها برای بسیاری از مبتدیان و توسعه دهندگان خوب است.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION