JavaRush /Java Blogu /Random-AZ /Hər proqramçının oxumalı olduğu 10 məqalə
Shoggy
Səviyyə
Санкт-Петербург

Hər proqramçının oxumalı olduğu 10 məqalə

Qrupda dərc edilmişdir
Java proqramçısı və proqram təminatı tərtibatçısı olaraq, hər bir proqramçının bilməli olduğu bir çox məqalədən çox şey öyrəndim ..... , onlar başqa cür çətin olan müəyyən bir mövzu haqqında çoxlu faydalı və əhatəli məlumat verirlər. kəşf etmək. Bilik axtarışında, təkrar oxumaq üçün istinad məlumatı olaraq əlfəcin qoyduğum çox faydalı məqalələrlə rastlaşdım. Bir çox proqramçıların bu kolleksiyanı oxumaqdan faydalana biləcəyi fikri məni bu yazını yazmağa və bütün bu “Hər bir proqramçının bilməli olduğu şeylər” məqalələrini sizinlə paylaşmağa vadar etdi. Bu məqalədə siz yaddaş , Unicode , üzən nöqtə arifmetikası , şəbəkə , obyekt yönümlü dizayn vaxt , URL kodlaşdırması , sətir və bir çox başqa Hər bir proqramçının oxumalı olduğu 10 məqalə - 1mövzularda hər bir proqramçıya lazım olan klassik bilik dəsti ilə tanış olacaqsınız . Bu siyahı yeni başlayanlar və yeni gələnlər üçün çox vacibdir, çünki onlar tez-tez praktiki biliklərə malik deyillər. Məqalələrin çoxu real həyat nümunələrinə əsaslandığından, ilk və orta səviyyəli proqramçılar onlardan çox şey öyrənə bilərlər. Həmçinin, karyeranızın əvvəlində əsasları öyrənmək, digər proqramçıların və proqram tərtibatçılarının öyrənmə yollarında artıq buraxdıqları səhvlərdən qaçmağa kömək edəcək. Təəssüf ki, təsvir olunan məqalələrdəki bütün məlumatlar ilk oxunuşdan asanlıqla həzm olunmur. Çox güman ki, üzən nöqtə nömrələri ilə bağlı bəzi təfərrüatları dərhal başa düşməyəcəksiniz və ya yaddaşın incəlikləri sizi çaşdıra bilər, lakin bu kolleksiyanı əlinizdə saxlamaq və aydınlaşdırmaq üçün vaxtaşırı ona müraciət etmək vacibdir. Beləliklə, sizə uğurlar arzulayıram və bu gözəl məqalələri oxumaqdan həzz alın. Yeri gəlmişkən, siyahımızda yoxdursa, "Hər bir proqramçının bilməli olduğu" hər hansı digər məqalələri paylaşmağı unutmayın.

Hər bir proqramçı yaddaş haqqında nə bilməlidir

rus dilinə tərcümə Bu, bəziləri köhnə, bəziləri yeni, bəziləri məşhur və bəziləri o qədər də çox olmayan yaddaş xüsusiyyətləri ilə sizə bələdçilik edəcək klassik məqalələrdən biridir. İdarəetmə roluna və hər yerdə olmasına baxmayaraq, hər proqramçının Yaddaş haqqında kifayət qədər biliyi yoxdur. Müasir sistemlərdə yaddaşla tanış olmağın əhəmiyyəti yüksək performanslı proqramlar yazmaq işindəsinizsə, artır. Aparat dizaynerləri daha mürəkkəb yaddaş idarəetmə modelləri və CPU keşləri kimi sürətləndirmə üsulları ilə çıxış edirlər, lakin bunlar proqramçıların köməyi olmadan optimal şəkildə işləyə bilməz. Mən hələ də bu məqaləni oxuyuram və ondan RAM, L1 və L2 önbelleği kimi CPU keşləri, müxtəlif yaddaş növləri, birbaşa yaddaşa giriş, yaddaş nəzarətçisinin dizaynı və ümumiyyətlə yaddaş haqqında nə qədər öyrəndiyimi deyə bilmərəm. . Bir sözlə, istənilən səviyyədə olan proqramçılar üçün mütləq oxunmalıdır.

Üzən Nöqtəli Arifmetika Haqqında Hər Alim Nə Bilməlidir

Üzən nöqtə arifmetikasının mövzusu çətin və mənimsənilməsi asan deyil. floatBir çox Java proqramçıları dəyərləri type / doubleoperator ilə müqayisə edərkən nəyin səhv ola biləcəyini belə bilmirlər ==. Bir çoxumuz pul hesablamalarını növlər floatdouble. Bu məqalə bu seriyanın başqa bir incisidir və bütün proqram tərtibatçıları və proqramçılar üçün mütləq oxunmalıdır. Təcrübə qazandıqca ümumi mövzuların incəliklərinə daxil olmalısınız və üzən nöqtə arifmetikası onlardan biridir. floatYüksək səviyyəli Java tərtibatçısı kimi siz pul hesablamalarını, nə vaxt istifadə edəcəyinizi və doubleya BigDecimalüzən nöqtə nömrələrini yuvarlaqlaşdırmağı və daha çox şeyləri bilməlisiniz . Bu mövzuda kifayət qədər məlumatınız olsa belə, məqaləni oxuduqdan sonra üzən nöqtə əməliyyatları haqqında yeni bir şey kəşf edə bilərsiniz.

Hər bir tərtibatçı Unicode haqqında bilməlidir

Xarakterlərin kodlaşdırılması bir çox proqramçının mübarizə apardığı başqa bir sahədir və “Hər bir Proqram Tərtibatçısının Unicode və Simvol Dəstləri Haqqında Mütləq Minimum Bilməlidir (Bəhanə yoxdur!)” bu boşluğu doldurmaq məqsədi daşıyır. Qeyd edək ki, Bəli, bu məqalənin tam adıdır. Onun müəllifi https://stackoverflow.com saytının yaradıcılarından biri olan Coel Spolskidir . Joel bu məqaləni öz bloqunda təxminən 10 il əvvəl yazıb, lakin müasir dünyada aktuallığını itirməyib. Məqalədə Unicode nədir, kodlaşdırma nədir, baytlardan istifadə edərək simvolların necə təmsil olunduğu və daha çox şey izah olunur. Bu məqalənin ən yaxşı cəhətlərindən biri dil və təqdimat üsuludur, hətta Unicode haqqında heç nə bilmirsinizsə belə, onu başa düşməkdə heç bir probleminiz olmayacaq. Bir sözlə, başqası bütün proqramçılar, kodlaşdırıcılar və proqram mühəndisləri üçün oxumalıdır.

Hər bir proqramçının zaman haqqında bilməli olduğu şeylər

Simvolların kodlaşdırılması ilə yanaşı, vaxt və tarixlər ( TimeDate) mənim də daxil olmaqla bir çox proqramçının çətinlik çəkdiyi başqa bir sahədir. Hətta yüksək səviyyəli tərtibatçılar GMT, UTC, yaz vaxtı və sıçrayış saniyələrində itirirlər. Düzünü desəm, bəzi səhvlərə yol vermədən vaxt qurşaqları ilə məşğul olmaq asan deyil və Yaz saatından istifadə bunu daha da çətinləşdirir. Sınaq və səhvdən istifadə etsəniz, problemlər daha da pisləşir, çünki bunu etməklə probleminizi heç vaxt həll edə bilməyəcəksiniz. Səhv gedə biləcək çox sayda şey və eyni sayda yanlış təsəvvür var. Tarixin saat qurşağının olub-olmaması kimi şeylər sizi çaşdıra bilər, UNIX vaxtını digər saat qurşaqlarına çevirmək sizi qıcıqlandıra bilər və siz saatları və gecikmələri sinxronizasiya etməyi asanlıqla unuda bilərsiniz. Ümid edirəm ki, bu yazını oxuduqdan sonra zamanla bağlı bir çox yanlış təsəvvürləriniz aradan qalxacaq və sizdə zaman haqqında tam anlayış formalaşacaq.

Hər Veb Tərtibatçısının URL Kodlaşdırması Haqqında Nəyi Bilməlidir

Bu məqalə Uniform Resource Locator (URL) kodlaşdırması haqqında ümumi yanlış təsəvvürləri təsvir edir, daha sonra HTTP üçün URL kodlamasını aydınlaşdırmağa cəhd edir və sonra ümumi problemlər və həll yollarını nümayiş etdirir. Bu məqalə hər hansı bir proqramlaşdırma dilinə xas olmasa da, Java-dakı problemləri təsvir edir) və Java-da və bir neçə səviyyəli veb proqramlarda URL kodlaşdırma problemlərini həll etmək üçün izahatlarla bitir. Siz əsas URL qrammatikasını, HTTP-də ümumi URL sintaksisini və digər protokolları öyrənəcəksiniz. Bu məqalə həmçinin simvol kodlaşdırması, URL-in müxtəlif hissələrində xüsusi simvollar və URL kodlaşdırma/şifrləmə məsələləri kimi ümumi URL tələlərini əhatə edir. Əgər siz Java proqramçısısınızsa, o zaman Java proqramında URL-ləri düzgün idarə etməyi də öyrənəcəksiniz. URL qurmaq və Apache Commons HTTP müştəri kitabxanasından necə istifadə etmək olar. Nəhayət, o, həmçinin URL-lərlə işləmək üçün ən yaxşı təcrübələr və təkliflər təklif edir, məsələn, URL-i qurarkən onu necə kodlaşdırmalı, URL yenidən yazma filtrlərinizin URL-lərinizi düzgün idarə etdiyinə əmin olun və s. Bir sözlə, istənilən veb tərtibatçı və proqramçı üçün mütləq oxunmalıdır.

Hər bir proqramçı veb inkişafı haqqında nə bilir?

ProqrammersStackExchange-in bu maraqlı məqaləsi veb tətbiqinin texniki təfərrüatlarını həyata keçirən hər bir proqramçının saytı ictimaiyyətə açmazdan əvvəl nələrə diqqət etməli olduğu haqqındadır. Buraya İnterfeys dizaynı və İstifadəçi Təcrübəsi, Təhlükəsizlik, Veb standartları, Performans, Axtarış Mühərrikinin Optimizasiyası (SEO), istifadə olunan texnologiyalar və bəzi vacib resurslar sahələrindən olan şeylər daxildir. Bugünkü dünya əsasən İnternetdən asılıdır və bir proqramçının şəxsi veb-saytı və ya bloqu olması olduqca adi haldır. Bu məqalədən əldə edilən təcrübə təkcə peşəkar fəaliyyətinizdə deyil, həm də öz layihələrinizdə faydalı olacaq. Siz HTTP, HTML, XML, CSS, JavaScript, brauzer uyğunluğu, saytınızın yükləmə vaxtını azaltmaq üçün məsləhətlər, XML sayt xəritələri, W3C spesifikasiyası və bir sıra digər əsas məqamlar kimi bütün əsas texnologiyalar haqqında öyrənəcəksiniz.

Hər bir proqramçı SEO haqqında nə bilməlidir

Bu, veb tərtibatçıları, proqramçılar və bloggerlər üçün olduqca faydalı olacaq başqa bir məqalədir. SEO diqqətdən kənarda qalmamaq üçün çox böyükdür və bir çox proqramçı və blogger üçün Google-a onların məzmununu tapmağa və onu digər proqramçılara göstərməyə kömək etmək üçün axtarış sisteminin optimallaşdırılmasının əsaslarını bilməsi vacibdir. Heç bir şirkət bu günün əlaqəli dünyasında veb varlığı olmadan yaşaya bilmədiyi üçün SEO daha da vacib olur. Hər hansı bir məhsul satan bir başlanğıcınız varsa, SEO diqqət etməli olduğunuz bir şeydir. Bütün proqramçılar, xüsusən də veb tərtibatçıları bu məqalədən çox faydalana bilərlər. Unutmayın ki, axtarış sisteminin optimallaşdırılması geniş və çox dinamikdir və Google, Yahoo və başqaları kimi müxtəlif axtarış sistemlərində dəyişir. Beləliklə, bu mövzuya yiyələnmək üçün biliklərinizi daim yeniləməlisiniz.

Hər C Proqramçısının Müəyyən edilməmiş Davranış Haqqında Nəyi Bilməlidir #1/3

C proqramlaşdırma dilində "müəyyən edilməmiş davranış" anlayışı var. Müəyyən edilməmiş davranış çoxlu nüansa malik geniş mövzudur və bu, Java-nı sevməyimin səbəblərindən biridir: daha az qeyri-müəyyən davranış, daha az qarışıqlıq, daha çox sabitlik və daha çox sülh. C-də ağlabatan görünən bir çox şeyin əslində qeyri-müəyyən davranışı var və bu, proqramlardakı səhvlərin ümumi mənbəyidir. Əlavə olaraq, C-də hər hansı qeyri-müəyyən davranış tətbiqlərə (tərtibçi və iş vaxtı) sərt diski formatlaşdıran, tamamilə gözlənilməz işlər görən və ya daha pis işlərlə məşğul olan kodun yaradılmasına icazə verir. Gözlənilməz davranış dənizinə dərin dalış üçün bu əla məqaləni oxuyun.

Hər bir proqramçının şəbəkələr haqqında bilməli olduğu şeylər

Məqalənin özündən "Siz proqramçısınız. Çox oyunçu oyunlarının necə işlədiyini heç düşünmüsünüzmü? Kənardan baxanda sehrli görünür: iki və ya daha çox oyunçu onlayn əməkdaşlıq təcrübəsini paylaşır, sanki eyni virtual dünyada birlikdə mövcuddurlar. Amma necə "Biz həqiqəti bilirik, proqramçılar, əslində baş verənlər gördüyünüzdən tamamilə fərqlidir. Məlum oldu ki, bunların hamısı bir illüziyadır." Bu, oyun proqramçıları üçün yazılmış şəbəkə haqqında çox maraqlı məqalədir, lakin məncə hər bir proqramçı və tərtibatçı bundan faydalana bilər.

Hər Java Tərtibatçısının Sətirlər Haqqında Nəyi Bilməlidir

Bu mənim məqaləmdir java.lang.Stringvə şəxsən düşünürəm ki, hər bir Java proqramçısı bu barədə bilməlidir. Gündəlik Java proqramlaşdırmasında sətirlər çox vacibdir və buna görə də hər hansı bir Java tərtibatçısı üçün yaxşı bilik mütləqdir. Bu məqalə sətir hovuzu, sətir literalları, sətirləri ==vs ilə müqayisə etmək equals(), baytları sətirə çevirmək, sətrin niyə dəyişməz olması, düzgün sətir birləşməsi və s. daxil olmaqla, Stringlərin bir çox mühüm aspektlərini əhatə edir. Qabaqcıl bir proqramçı artıq bütün bu xüsusiyyətləri bilə bilər, lakin buna baxmayaraq, nəzərdən keçirmək yaxşı olardı.

Hər bir proqramçı təhlükəsizlik haqqında nə bilməlidir?

Bu sual StackOverflow-da tələbə proqramçı tərəfindən verilib. Əməliyyat sistemi, alqoritmlər, məlumat strukturları, kompüter arxitekturası və digər şeylər kimi ümumi proqramlaşdırma anlayışları haqqında çox şey bildiyimiz kimi, təhlükəsizlik haqqında da bilmək vacibdir. Təhlükəsizlik mövzusu kifayət qədər geniş olsa da, şifrələmə/şifrənin açılması, SSL, veb təhlükəsizliyi, çaşqınlıq, autentifikasiya, avtorizasiya və s. sahələri əhatə edir, hər bir proqramçı üçün tələb olunan əsas minimum bilik var. Şəxsən mən karyeramın əvvəlində təhlükəsizlik haqqında çox şey bilmirdim, Servlet/JSP əsaslı Java veb proqramını yazmağa başlayanda veb təhlükəsizliyi və SQL Injection, Denial of Service, XML kimi bir sıra təhlükəsizlik təhdidləri haqqında öyrəndim. Injection, cross-site scripting və s. Java tərtibatçısı kimi mən indi Fortify, PMP və digər statik kod analizator provayderləri tərəfindən təmin edilən təhlükəsiz Java proqramlaşdırma təcrübələrinə əməl edirəm. Bu məqalədə çox yaxşı təhlükəsizlik mövzuları və keçidlər var və kodlasanız da, etməsəniz də, bu mənbədən mütləq faydalanacaqsınız.

Hər bir proqramçının bilməli olduğu gecikmə nömrələri

Bu məqalə bir bonusdur, lakin buna baxmayaraq, hər bir proqramçı üçün mütləq oxunmalıdır. İstənilən proqramlaşdırma dilində, istər Java, istərsə də C++-da yüksək performanslı proqram yazmaq üçün siz əsas gecikmə dəyərlərini bilməlisiniz, məsələn, dəyişəni yaddaşdan, L1 keşindən, L2 keşindən, bir müddət ərzində oxumaq üçün nə qədər vaxt lazım olacaq. SSD-dən və diskdən təsadüfi oxumaq. Məlumat paketini bir şəhərdən digərinə göndərmək və ya bir məlumat mərkəzi daxilində gediş-gəliş etmək üçün mutexi kilidləmək/kilidini açmaq nə qədər vaxt aparır. Bu gecikmə dəyərləri proqramlaşdırma dilindən müstəqildir və bir tərtibatçının yüksək yüklü, aşağı gecikmə müddəti olan proqramlar yazması üçün lazım olan əsas biliklərin bir hissəsidir. Bu əlaqənin müsbət tərəfi odur ki, o, bu dəyərlərin illər ərzində necə inkişaf etdiyini müqayisəli təhlil edir. 2006-cı ildə dəyərlərin nə olduğunu və indi nə olduğunu görə bilərsiniz. Hər bir proqramçının oxumalı olduğu məqalələrin siyahısı üçün bunlardır. Hər bir proqramçı və ya tərtibatçının bilməli olduğu kimi məqalələri oxumaqla siz müəyyən bir mövzu haqqında biliklərinizi dərinləşdirirsiniz. Düzünü desəm, proqramçıların öyrənməli olduğu çox şey var və Java kimi proqramlaşdırma dilini öyrənmək aysberqin sadəcə görünən hissəsidir, amma çoxumuzun öyrənməyə həvəsi yoxdur. Proqramlaşdırma daimi inkişaf tələb edən bir işdir və hər bir proqramçıya karyerası boyu faydalı olacaq yeganə şey yaddaş , Unicode , üzən nöqtə nömrələri , vaxt , təhlükəsizlik (təhlükəsizlik) kimi şeylər haqqında fundamental biliklərdir . Bəzi şeylər dilə xasdır, məsələn, Java-dakı String və Hər C Proqramçısının Müəyyən edilməmiş Davranış Haqqında Nəyi bilməli olduğu kimi, lakin bir çox yeni başlayanlar və tərtibatçılar üçün bunları öyrənmək yaxşıdır.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION