JavaRush /Java блогы /Random-KK /Әрбір бағдарламашы оқуы керек 10 мақала
Shoggy
Деңгей
Санкт-Петербург

Әрбір бағдарламашы оқуы керек 10 мақала

Топта жарияланған
Java бағдарламашысы және бағдарламалық жасақтама әзірлеушісі бола отырып, мен әр бағдарламашы не туралы білуі керек..... атты көптеген мақалалардан көп нәрсе білдім , олар белгілі бір тақырып туралы көптеген пайдалы және жан-жақты ақпаратты береді, олар басқаша қиынға соғады. ашу. Білімге ұмтылу барысында мен қайта оқу үшін анықтамалық ақпарат ретінде бетбелгі қойған өте пайдалы мақалаларды кездестірдім. Көптеген бағдарламашыларға осы жинақты оқу пайдалы болады деген ой мені осы постты жазуға және «Әрбір бағдарламашы білуі керек» мақалаларының барлығын сіздермен бөлісуге итермеледі. Бұл мақалада сіз жад , Юниcode , өзгермелі нүкте арифметикасы , желі , an objectіге бағытталған дизайн уақыт , URL codeтауы , Жол және басқа да көптеген Әрбір программист оқуы керек 10 мақала - 1тақырыптарда әрбір бағдарламашыға қажет білімдердің классикалық жиынтығымен таныс боласыз . Бұл тізім жаңадан бастағандар мен жаңадан келгендер үшін өте маңызды, өйткені оларда практикалық білімдер жиі жетіспейді. Мақалалардың көпшілігі өмірден алынған мысалдарға негізделгендіктен, бастапқы және орта деңгейдегі бағдарламашылар олардан көп нәрсені үйрене алады. Сондай-ақ, мансаптың басында негіздерді үйрену басқа бағдарламашылар мен бағдарламалық жасақтаманы әзірлеушілер оқу жолында жіберген қателіктерді болдырмауға көмектеседі. Өкінішке орай, сипатталған мақалалардағы барлық ақпарат бірінші оқылымнан оңай сіңбейді. Мүмкін, сіз өзгермелі нүкте сандары туралы кейбір мәліметтерді бірден түсінбеуіңіз мүмкін немесе жадтың күрделілігінен шатасуыңыз мүмкін, бірақ бұл жинақты қолыңызда ұстау және түсіндіру үшін мезгіл-мезгіл сілтеме жасау маңызды. Сондықтан мен сізге сәттілік тілеймін және осы тамаша мақалаларды оқудан ләззат алыңыз. Айтпақшы, егер олар біздің тізімде жоқ болса, кез келген басқа «Әр бағдарламашы нені білуі керек» мақалаларымен бөлісуді ұмытпаңыз.

Әрбір бағдарламашы жад туралы не білуі керек

Орыс тіліне аударма Бұл жадтың кейбір ерекшеліктері, кейбіреулері ескі, кейбіреулері жаңа, кейбіреулері әйгілі және кейбіреулері соншалықты көп емес, сізге нұсқау беретін классикалық мақалалардың бірі. Басқару рөлі мен барлық жерде болуына қарамастан, әрбір программист Жад туралы жеткілікті деңгейде білім ала бермейді. Егер сіз өнімділігі жоғары қолданбаларды жазу бизнесінде болсаңыз, заманауи жүйелерде жадпен танысудың маңыздылығы артады. Аппараттық құрал дизайнерлері жадты басқарудың анағұрлым күрделі үлгілерін және процессор кэштері сияқты жеделдету әдістерін ойлап табуда, бірақ олар бағдарламашылардың көмегінсіз оңтайлы жұмыс істей алмайды. Мен бұл мақаланы әлі оқып жатырмын және одан ЖЖҚ, L1 және L2 кэштері сияқты процессордың кэштері, жадтың әртүрлі түрлері, жадқа тікелей қол жеткізу, жад контроллерінің дизайны және жалпы жад туралы қаншалықты үйренгенімді айта алмаймын. . Қысқасы, кез келген деңгейдегі бағдарламашылар оқуы керек.

Әрбір ғалым өзгермелі нүктелік арифметика туралы не білуі керек

Жылжымалы нүкте арифметикасының тақырыбы күрделі және оны меңгеру оңай емес. floatКөптеген Java бағдарламашылары мәндерді type / doubleoperatörімен салыстырған кезде ненің қате болуы мүмкін екенін білмейді ==. Біздің көпшілігіміз ақшалай есептерді түрлер floatмен double. Бұл мақала осы серияның тағы бір асыл тастары болып табылады және барлық бағдарламалық жасақтаманы әзірлеушілер мен бағдарламашылар үшін оқуы керек. Тәжірибе жинақтаған кезде сіз жалпы тақырыптардың күрделілігіне өтуіңіз керек, ал өзгермелі нүкте арифметикасы солардың бірі. Аға Java әзірлеушісі ретінде сіз ақшалай есептерді қалай жасау керектігін, қашан пайдалану керектігін немесе floatөзгермелі нүкте сандарын қалай дөңгелектеу керектігін және т.б. білуіңіз керек. Осы тақырып бойынша толық біліміңіз болса да, мақаланы оқығаннан кейін сіз өзгермелі нүкте әрекеттері туралы жаңа нәрсені таба аласыз. doubleBigDecimal

Әрбір әзірлеуші ​​Юниcode туралы не білуі керек

Таңбаларды codeтау - бұл көптеген бағдарламашылар күресетін тағы бір сала және «Әрбір бағдарламалық жасақтама әзірлеушісі Юниcode пен таңбалар жиыны туралы абсолютті минималды білуі керек (еш ақтау жоқ!)» бұл олқылықты толтыруды мақсат етеді. Жазба үшін, Иә, бұл мақаланың толық атауы. Оның авторы Джоэль Спольский, https://stackoverflow.com негізін қалаушылардың бірі . Джоэл бұл мақаланы өз блогында шамамен 10 жыл бұрын жазған, бірақ ол қазіргі әлемде өзектілігін жоғалтқан жоқ. Мақалада Юниcode деген не, codeтау дегеніміз не, таңбалар byteтар арқылы қалай көрсетілетіні және т.б. түсіндіреді. Бұл мақаланың ең жақсы жақтарының бірі - тіл мен көрсету әдісі, тіпті Юниcode туралы ештеңе білмесеңіз де, оны түсінуде ешқандай қиындық болмайды. Қысқасы, басқасы барлық бағдарламашылар, codeерлер және бағдарламалық жасақтама инженерлері үшін оқуы керек.

Әрбір бағдарламашы уақыт туралы не білуі керек

Таңбаларды codeтаудан басқа, уақыт пен күндер ( Timeжәне Date) көптеген бағдарламашылар, соның ішінде өзім де қиынға соғатын тағы бір сала. Тіпті аға әзірлеушілер GMT, UTC, жазғы уақыт және секунт секундтарында адасып қалады. Шынымды айтсам, кейбір қателіктерсіз уақыт белдеулерімен күресу оңай емес, ал жазғы уақытты пайдалану оны одан сайын қиындатады. Сынақ пен қатені пайдалансаңыз, мәселелер нашарлайды, өйткені сіз мұны істеу арқылы ешқашан мәселеңізді шеше алмайсыз. Қате болуы мүмкін нәрселердің саны өте көп және қате түсініктердің саны бірдей. Күнде уақыт белдеуі бар ма, жоқ па сияқты нәрселер сізді шатастыруы мүмкін, UNIX уақытын басқа уақыт белдеулеріне түрлендіру сізді тітіркендіруі мүмкін және сағаттар мен кешігулерді синхрондау туралы оңай ұмытуға болады. Осы мақаланы оқығаннан кейін уақыт туралы көптеген қате түсініктер жойылып, уақыт туралы толық түсінік қалыптасады деп сенемін.

Әрбір веб-әзірлеуші ​​URL codeтауы туралы не білуі керек

Бұл мақала Бірыңғай ресурстарды анықтау құралы (URL) codeтауы туралы жалпы қате түсініктерді сипаттайды, содан кейін HTTP үшін URL codeтауын түсіндіруге әрекеттенеді, содан кейін жалпы мәселелер мен шешімдерді көрсетеді. Бұл мақала кез келген бағдарламалау тіліне тән болмаса да, ол Java-дағы мәселелерді суреттейді) және Java-да және бірнеше деңгейдегі веб-қосымшаларда URL codeтау мәселелерін шешуге арналған түсіндірмелермен аяқталады. Сіз негізгі URL грамматикасын, HTTP жүйесіндегі жалпы URL синтаксисін және басқа хаттамаларды үйренесіз. Бұл мақалада таңбаларды codeтау, URL мекенжайының әртүрлі бөліктеріндегі арнайы таңбалар және URL codeтау/деcodeтау мәселелері сияқты жалпы URL қателері қарастырылады. Егер сіз Java бағдарламашысы болсаңыз, Java қолданбасында URL мекенжайларын дұрыс басқаруды үйренесіз. URL мекенжайын құру және Apache Commons HTTP клиенттік кітапханасын пайдалану жолы. Соңында, ол URL мекенжайларымен жұмыс істеуге арналған ең жақсы тәжірибелер мен ұсыныстарды ұсынады, мысалы, оны құру кезінде URL мекенжайын қалай codeтау керек, URL қайта жазу сүзгілері URL мекенжайларын дұрыс өңдейтініне көз жеткізу және т.б. Бір сөзбен айтқанда, кез келген веб-әзірлеуші ​​мен бағдарламашы оқуы керек.

Әрбір бағдарламашы веб-әзірлеу туралы не біледі?

ProgrammersStackExchange ұсынған бұл қызықты мақала веб-қосымшаның техникалық мәліметтерін жүзеге асыратын әрбір бағдарламашы сайтты көпшілікке ашпас бұрын нені ескеруі керек екендігі туралы. Ол интерфейс дизайны және пайдаланушы тәжірибесі, қауіпсіздік, веб-стандарттар, өнімділік, іздеу жүйесін оңтайландыру (SEO), пайдаланылатын технологиялар және кейбір маңызды ресурстар салаларындағы нәрселерді қамтиды. Қазіргі әлем негізінен Интернетке тәуелді және бағдарламашының жеке веб-сайты немесе блогы болуы әдеттегідей. Осы мақаладан алынған тәжірибе сіздің кәсіби қызметіңізде ғана емес, жеке жобаларыңызда да пайдалы болады. Сіз HTTP, HTML, XML, CSS, JavaScript сияқты барлық негізгі технологиялар, шолғыш үйлесімділігі, сайтыңызды жүктеу уақытын қысқарту бойынша кеңестер, XML сайт карталары, W3C спецификациялары және басқа да бірнеше негізгі тармақтар туралы білетін боласыз.

Әрбір бағдарламашы SEO туралы не білуі керек

Бұл веб-әзірлеушілер, бағдарламашылар және блогерлер үшін өте пайдалы болатын тағы бір мақала. SEO елемеу үшін тым үлкен және көптеген бағдарламашылар мен блогерлер үшін Google-ға олардың мазмұнын табуға және оны басқа бағдарламашыларға көрсетуге көмектесу үшін іздеу жүйесін оңтайландыру негіздерін білу маңызды. Бүгінгі қосылған әлемде ешбір компания веб-қатысусыз өмір сүре алмайтындықтан, SEO одан да маңызды бола түседі. Егер сізде кез келген өнімді сататын стартап болса, онда SEO сізге қамқорлық қажет нәрсе. Барлық бағдарламашылар, әсіресе веб-әзірлеушілер, бұл мақаладан үлкен пайда көре алады. Есіңізде болсын, іздеу жүйесін оңтайландыру кең және өте динамикалық және Google, Yahoo және басқалар сияқты әртүрлі іздеу жүйелерінде өзгереді. Ендеше, бұл тақырыпты меңгеру үшін біліміңізді үнемі жаңартып отыру керек.

Әрбір C бағдарламашысы анықталмаған мінез-құлық туралы не білуі керек №1/3

Си программалау тілінде «анықталмаған мінез-құлық» түсінігі бар. Анықталмаған мінез-құлық - көптеген нюанстары бар кең тақырып және бұл Java-ны жақсы көретін себептердің бірі: аз анықталмаған мінез-құлық, аз шатасу, көбірек тұрақтылық және көбірек тыныштық. Си тілінде ақылға қонымды болып көрінетін көптеген нәрселердің іс жүзінде анықталмаған әрекеті бар және бұл бағдарламалардағы қателердің жалпы көзі болып табылады. Сонымен қатар, C тіліндегі кез келген анықталмаған әрекет қатты дискіні пішімдейтін codeты генерациялау үшін іске асыруға (компилятор мен жұмыс уақыты) рұқсат береді, мүлдем күтпеген әрекеттерді жасайды немесе одан да нашар. Күтпеген мінез-құлық теңізіне терең сүңгу үшін осы тамаша мақаланы оқыңыз.

Әрбір бағдарламашы желі туралы не білуі керек

Мақаланың өзінен "Сіз бағдарламашысыз. Көп ойыншы ойындарының қалай жұмыс істейтіні туралы бір кездері ойланып көрдіңіз бе? Сырттан қарағанда, бұл сиқырлы болып көрінеді: екі немесе одан да көп ойыншылар бір виртуалды әлемде бірге өмір сүріп жатқандай желіде бірлескен тәжірибемен бөліседі. Бірақ қалай «Біз шындықты білеміз, бағдарламашылар, шын мәнінде болып жатқан нәрсе сіз көргеннен мүлдем басқаша. Мұның бәрі иллюзия екені белгілі болды». Бұл ойын бағдарламашылары үшін жазылған желі туралы өте қызықты мақала, бірақ менің ойымша, әрбір бағдарламашы мен әзірлеуші ​​одан пайда көре алады.

Әрбір Java әзірлеушісі жолдар туралы не білуі керек

Бұл менің мақалам java.lang.Stringжәне жеке менің ойымша, бұл туралы әрбір Java бағдарламашысы білуі керек. Жолдар күнделікті Java бағдарламалауда өте маңызды, сондықтан жақсы білім кез келген Java әзірлеушісіне қажет. Бұл мақала Жолдардың көптеген маңызды аспектілерін қамтиды, соның ішінде жол пулы, жол литералдары, жолдарды ==vs арқылы салыстыру equals(), byteтарды жолға түрлендіру, жол неге өзгермейтін, дұрыс жолды біріктіру және т.б.. Жетілдірілген бағдарламашы осы мүмкіндіктердің барлығын бұрыннан білуі мүмкін, бірақ соған қарамастан, оны қарап шығу жақсы идея болар еді.

Әрбір бағдарламашы қауіпсіздік туралы не білуі керек?

Бұл сұрақты StackOverflow бағдарламасында студент бағдарламашы қойды. Біз операциялық жүйе, алгоритмдер, деректер құрылымдары, компьютер архитектурасы және т.б. сияқты жалпы бағдарламалау тұжырымдамалары туралы көп білетініміз сияқты, қауіпсіздік туралы да білу маңызды. Қауіпсіздік тақырыбы шифрлау/шифрды шешу, SSL, веб-қауіпсіздік, жасыру, аутентификация, авторизация және т.б. салаларын қамтитын өте кең болса да, әрбір бағдарламашы үшін қажетті білімнің негізгі минимумы бар. Жеке өзімнің мансабымның басында мен қауіпсіздік туралы көп білмедім, мен Servlet/JSP негізіндегі Java веб-қосымшасын жаза бастаған кезде мен веб-қауіпсіздік және SQL инъекциясы, қызмет көрсетуден бас тарту, XML сияқты бірқатар қауіпсіздік қатерлері туралы білдім. Инъекция, сайт аралық сценарий және т.б. Java әзірлеушісі ретінде мен қазір Fortify, PMP және басқа статикалық code анализатор провайдерлері ұсынған қауіпсіз Java бағдарламалау тәжірибелерін ұстанамын. Бұл мақалада қауіпсіздік тақырыптары мен сілтемелерінің өте жақсы таңдауы бар және сіз codeтайсыз ба, жоқ па, бұл ресурс сізге міндетті түрде пайда әкеледі.

Әрбір бағдарламашы білуі керек кідіріс сандары

Бұл мақала бонус болып табылады, бірақ соған қарамастан кез келген бағдарламашы оқуы керек. Java немесе C++ болсын, кез келген бағдарламалау тілінде өнімділігі жоғары қосымшаны жазу үшін сіз негізгі күту уақытының мәндерін білуіңіз керек, мысалы, жадтан, L1 кэшінен, L2 кэшінен, L2 кэшінен айнымалы мәнді оқуға қанша уақыт қажет. SSD және дискіден кездейсоқ оқу. Деректер пакетін бір қаладан екінші қалаға жіберу немесе бір деректер орталығында кері сапар жасау үшін мутексті құлыптау/құлпын ашу қанша уақытты алады. Бұл кідіріс мәндері бағдарламалау тілінен тәуелсіз және әзірлеушіге жүктелуі жоғары, кешігуі аз қолданбаларды жазу үшін қажет негізгі білімнің бөлігі болып табылады. Бұл сілтеменің жағымды жағы - бұл құндылықтардың жылдар бойы қалай дамығанына салыстырмалы талдау жасау. Сіз 2006 жылы қандай құндылықтар болғанын және қазір қандай екенін көре аласыз. Әрбір бағдарламашы оқуы керек мақалалар тізімі осының бәрі. Әрбір бағдарламашы немесе әзірлеуші ​​нені білуі керек сияқты мақалаларды оқу арқылы сіз белгілі бір тақырып бойынша біліміңізді тереңдетесіз. Шынымды айтсам, бағдарламашылар үшін үйренуге болатын нәрселер өте көп және Java сияқты бағдарламалау тілін үйрену айсбергтің бір ұшы ғана, бірақ көпшілігімізде оқуға құмар емеспіз. Бағдарламалау - бұл үнемі дамуды қажет ететін жұмыс және кез келген бағдарламашыға өзінің мансабында пайдалы болатын жалғыз нәрсе - жад , Юниcode , өзгермелі нүкте сандары , уақыт , қауіпсіздік (қауіпсіздік) сияқты нәрселер туралы іргелі білім . Кейбір нәрселер тілге тән, мысалы, Java тіліндегі String және әрбір C бағдарламашысы анықталмаған мінез-құлық туралы не білуі керек, бірақ олар көптеген жаңадан бастағандар мен әзірлеушілер үшін үйренуге жақсы.
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION