Soru, web geliştirici topluluklarında rutin olarak ortaya çıkıyor. Neden öğrenecek bu kadar çok şey var, neden bu kadar çok araç var? Cevap basit ve kritik derecede önemli.
Son birkaç yılda bir dizi makale ve son zamanlarda bir ani artış gördüm, hepsi temelde Web Geliştirme’nin neden tamamen bozuk olduğunu soruyor. Neden bu kadar çok hareket var ve neden öğrenecek bu kadar çok şey var.
Yeni geliştiriciler için bu, göz korkutucu bir alandır. Teknolojiler, jargon ve kısaltmalarla dolu. Özellikle, şaşırtıcı sayıda “şey” adıyla yüklü: Bower, Gulp, React, Bootstrap, LESS, NPM, jQuery, Foundation, Elm, ES6, Webpack, Redux, Ember, Node, MVC, VanillaJS, Babel, Docker , Alt Çizgi, Vue, JSX, Angular, Grunt, Typescript, ES-Next, Sass, Stylus, ES2015, Express, Python, Jade, ESLint, Bulma, BEM ve sonsuz sayıda diğerleri.
Yeni bir geliştiricinin veya geri dönen bir geliştiricinin bakış açısından, bunların hepsi “şu anda öğrenmem gereken şeyler yoksa işe yaramazım”. Aslında bu gerçeklerden çok uzaktır, ancak bunları anlayacak araçlar ve bilgiler olmadan, anlamsız kelimelerin aşılmaz bir ormanıdır.
Dürüst olmak gerekirse, bence çoğu “JavaScript Yorgunluğu” insanı sonsuza dek şikayet ediyor.
Bu teknolojiler listesine bakmak ve hepsini öğrenmeniz gerektiğinden şikayet etmek, bir restoran menüsüne bakmak ve her şeyi yemeniz gerektiğinden şikayet etmek gibidir.
Tüm bu araçlar hakkında anlaşılması gereken kritik nokta, bunların tüm geliştiricilerin öğrenmesi gereken bir tür kontrol listesi olmamasıdır. 0 ile başlamazsınız ve hepsinde ustalaştığınızda “kıdemli” olursunuz ve% 70 maaş artışı elde edersiniz. “Küçük bir işe uygun” olmak için belirli bir sayıya ihtiyacınız yok.
Aksine, bu anlamsız ve genellikle soyut terimler, gerçek gerçek dünya sorunlarına teknik çözümlerdir.
Bu teknolojileri bir yeterlilik kontrol listesi gibi ele almak felaket bir zihniyettir.
Çözmeye çalıştığı problem hakkında herhangi bir bilgi veya anlayış olmadan bir çözümü gerçekten öğrenmek imkansızdır. Çözmeye çalıştığı problem gerçekten yokken çözümü kullanmaya veya öğrenmeye çalışmak neredeyse imkansızdır ve sadece hayal kırıklığına yol açacaktır: “Bu anlamsız!”.
Bunu her zaman görüyorsunuz, insanlar ElasticUnicorn.js’nin kazançsız , aptal ve gereksiz bir karmaşıklık olduğundan şikayet ediyorlar ve anlamıyorlar. Elbette, oluşturma yukarı yolunuzun hala tamamen binubüle edildiği zamandır. Açıkçası.
Daha deneyimli geliştiriciler de dahil olmak üzere, insanların unutmaya meyilli oldukları şey, yazılımın sorunlara yönelik çözümlerden daha fazla veya daha az olmadığıdır . Bu sorunlardan bazıları tekniktir. Ancak çoğu, yazılımı sürdürülebilir, tutarlı ve tutarlı tutmakla ilgilidir.
Bu teknolojilerin çözdüğü sorunların çoğu aslında teknik değil, insan sorunlarıdır. İnsanlar arasındaki farklılıkları, şeyleri nasıl gördüğümüzü, şeyleri nasıl adlandırdığımızı ve bir seferde anlayabileceklerimizle ilgili sahip olduğumuz sınırlamaları çözmek.
Yeni araçları ve teknolojileri öğrenmenin en iyi yolu, alet dünyasını oluşturan soyut kelime vomitinden geçmek değil, bir şeyler inşa etmektir . Sonra bunun hangi kısmının olması gerektiğinden daha zor olduğunu bulmak ve bunu kolaylaştırmak için bir çözüm bulup bulamayacağınıza bakmak.
Bazılarımız için, bu oldu bir seçenek. Alet ve teknoloji, bilgi ve deneyim yavaş yavaş gelebildi. Web geliştirmeye ilk başladığımda, yalnızca JavaScript uzaktan bir gereksinim değildi, aynı zamanda CSS bile mevcut değildi. HTML’yi tek başıma öğrenebildim. Yine de savunmamda, HTML kesinlikle kıçını yırtıyordu.
Şimdi başlayan geliştiriciler için, bu yavaş bilgi birikimi gerçekten bir seçenek değil. Öyleyse yardımcı olmak için yapabileceğim şey, bu büyük bağlamdan bağımsız isimler topunu ayırmak, onları anlamlı şekillerde gruplandırmaya çalışmak ve hangi problemleri çözdüklerini ve ne zaman ve neden kullanmak isteyebileceğinizi anlamak için biraz anlayış sağlayıp sağlayamayacağımızı görmek. onları.
Kolaylık sağlamak için iki küçük simge ekledim. 🚀, kesinlikle öğrenmeniz gereken kritik araçlardır. 💀, temelde suda ölü olduğunu düşündüğüm projeler veya araçlardır ve tamamen dahil edilmiştir, böylece insanlar onlardan bahsederse ne olduklarını bilirsiniz. Bunların ikisi de oldukça özneldir.
İçindekiler
JavaScript
Pek çok insan JavaScript’in aslında yanlış isim olduğunu anlamıyor. JavaScript, daha doğru bir şekilde EcmaScript olarak adlandırılan şey için bir markalama terimidir. Başlangıçta Avrupa Bilgisayar Üreticileri Derneği, şimdi sadece Ecma, rutin olarak JavaScript dediğimiz şeyin standartları ve özellikleri doğrultusunda çalışan bir yapıdır. Pratikte bu, tipik olarak sadece teknik bir ilgisizlik olacaktır, ancak yakında çok alakalı hale gelecektir.
VanillaJS
Vanilla “sadece eski JavaScript” anlamına gelir. Genellikle VanillaJS olarak, bir çerçeve veya kitaplık olduğuna dair yanaktan bir öneri olarak yazılır. Ancak bu, tüm tarayıcıların anladığı şekliyle standart JavaScripttir.
🚀 ES5
Yukarıdaki gibi, ES5 tüm tarayıcılar tarafından doğal olarak anlaşılan normal bir JavaScript’tir. Tüm EcmaScript olayının daha alakalı hale geldiği yer burasıdır. ES = EcmaScript, JavaScript için daha doğru ad.
🚀 ES6
Yukarıdaki EcmaScript’e yapılan bir güncelleme olan ES6, bir dizi yeni özellik ve sözdizimi ekledi. Bunlar için destek sürekli olarak tarayıcılara eklenmiş olsa da, ES6’da yazılan kodun büyük bir kısmı, her tarayıcının yerel olarak kullanabileceği ES5’e geri döndürülmesi için yazılım tarafından işlenmelidir. ES2015 olarak da bilinir.
ES.Next
ES5’ten ES6’ya büyük bir sıçramaydı ve gelecekte bu tür büyük ısırıkları önlemek için yıllık sürümler yeni sözdizimi, ES2017 ve ES2017 vb. İçeriyordu. Yeni bir ES2018 muhtemelen haftalar içinde piyasaya sürülecek ve ES.Next basitçe ya gelecekteki sürüm ne olursa olsun, ya da bazen ES6 ve üzeri sürümler için her şeyi kapsayan. İnsanlar ayrıca, teknik olarak ES6 / ES2015’ten sonra gelen özellikler de dahil olmak üzere, ES6 ve üstü herhangi bir şeyi ifade etmek için genellikle “ES6” kullanır.
ESLint
Linters, yazdığınız kodun belirli kurallara uymasını sağlamak için ayarlanmış kod denetleyicilerdir. ESLint, JSHint gibi diğerleriyle birlikte sadece JavaScript kurallarını kontrol etmek için bir kitaplıktır. ESLint daha günceldir ve ES6 + ‘ı destekler.
TypeScript
Bu, nispeten “esnek” JS’nin daha tutarlı ve disiplinli hale getirilmesine olanak tanıyan, Microsoft tarafından yazılmış bir JavaScript uzantısıdır. Bu, karmaşık uygulamalar yazmayı biraz kolaylaştırır. TypeScript, JavaScript değildir ve bir tarayıcıda çalıştırılması gerekir. Çok fazla Angular yapmadığınız sürece bunu öğrenmek gerekli değildir.
💀 CoffeeScript
2010’ların başında, Ruby’ye benziyorlarsa her şeyin daha “zarif” olduğuna karar verildiği karanlık bir dönem vardı ve bu, noktalı virgül ve parantez gibi şeyleri kaldırmak ve her şeyi beyaz uzaya duyarlı hale getirmek anlamına geliyordu. CS, temelde JavaScript’in böyle yazılması ve ardından normal JavaScript’e derlenmesidir. Modern dünyada CoffeeScript’in hiçbir yeri yoktur ve büyük ölçüde geçersizdir.
Karar
Bunlardan gerçekten ihtiyacınız olan tek şey, iyi ve sağlam bir ES6 ve “VanillaJS” bilgisi. Bununla birlikte , bu teknolojiler hakkında gerçekten iyi ve sağlam bir anlayışa ihtiyacınız var. Bu noktada muhtemelen bu alandaki en önemli becerilerdir.
JavaScript Çerçeveleri
Geçenlerde çerçevelerin gerçekte hangi problemleri çözdüğü ve neden buna ihtiyacınız olduğu hakkında bir makale yazdım . Neyin en iyi, neden ve ayrıntılara girmeyeceğim çünkü bunu zaten yaptım. Ve Ember hala en iyisidir.
jQuery
Bu muhtemelen çok fazla giriş gerektirmez, jQuery, JavaScript’in daha kolay çalışmasını sağlamak ve Ajax ve DOM manipülasyonu gibi şeyleri kolaylaştırmak için tasarlanmış bir dizi yardımcı programdır.
🚀 React
Bir kitaplık (veya çerçeve, tanım telaşlı) bu noktada muhtemelen endüstriye hakimdir. Son derece esnek ve tartışmasız, sizin görüşünüze bağlı olarak ya iyi ya da kötü. React, gerçekte kendi terimlerini oluşturacak kadar belirgin ve etkilidir ve bu nedenle aşağıda bir bölüm alacaktır.
Açısal
Bu yüklü bir kelimedir. Angular muhtemelen ilk gerçek çerçeveydi ve orijinal versiyon birkaç yıl önce sektörde baskındı. O zamandan beri daha yeni sürümler çıktı. Açısal 1’den 2’ye muazzam ve felaket bir değişiklikti. Yine de, 2’den şu anki 6’ya kadar nispeten yumuşak bir geçiş. Orijinal Angular, AngularJS, 2+ ise Angular olarak adlandırılmalıdır, ancak pratikte olan bu değildir ve belirsizlik kalır. Angular bazen ng olarak kısaltılır.
Ember
Ember, aslında Angular ile yaklaşık aynı yaşta, ancak 1-3’ten geçiş tamamen pürüzsüzdü. Reddit gibi daha genç ve hevesli topluluklarda yaygın olarak konuşulmaz, ancak büyük, uzun ömürlü uygulamalarda iyi kullanılır. Netflix, LinkedIn vb.
VueJS
Vue, yeni çerçevelerden biridir ve hızla popüler hale gelmektedir. React gibi, yaptığı şey açısından nispeten küçüktür, ancak çok daha fazlasını yapma kapasitesine sahiptir.
Elm
JavaScript’e derlenen “işlevsel” bir dil. Oldukça disiplinli ve karmaşıktır ve bu aracı bir başlangıç geliştiricisi olarak öğrenmek kesinlikle gerekli değildir.
Karar
Bunların hepsi öğrenmen gereken şeyler değil. Bir veya iki iyidir. Ama muhtemelen en az birini öğrenmen gerekiyor. Ve muhtemelen React’tir. Bunun için gerçekten iyi JS becerilerine ihtiyacınız var ve bu en yüksek öncelik olarak görülmelidir.
React Ekosistemi
React, bir çerçeve ve topluluk olarak bir dizi şaşırtıcı terminoloji ve kavram oluşturacak kadar büyük.
Akış
Burada “teknoloji” olmayan tek şey, Flow, verilerin bileşenlere aktarılması ve ardından üstteki (veya ebeveynin üst öğesindeki) verileri değiştiren eylemlerin tetiklenmesi anlamına gelen bir metodoloji veya yaklaşımdır. Bu veriler veya durum değişiklikleri daha sonra bileşene kademelendirilir. Bu konseptin bazı varyantları artık tüm çerçeveler için temeldir.
Redux
Bir “durum yönetimi” aracı olan Redux, uygulamanızın dahili verilerini değiştirmek için ihtiyaç duyabileceği tüm yolları tek bir yerde tutmayı amaçlamaktadır. React’te yerleşik olarak bulunan daha karmaşık web uygulamaları için çok önemlidir. Redux, React için bir gereklilik değildir ve ona özel değildir, ancak ikisi büyük ölçüde birbiriyle ilişkilidir.
JSX
React standart şablonlar kullanmaz, bunun yerine doğrudan JavaScript kodunun içine gömülü XML görünümlü işaretlemeye sahip bir sözdizimi vardır.
Karar
React’i kullanmıyorsanız bunların hiçbiri muhtemelen alakasızdır, eğer zaten bunlarla karşılaşıyorsanız.
NodeJS Dünyası
Hem sunucu hem de yerel geliştirme aracı olarak düğüm, web geliştirme dünyasının temel bir parçasıdır.
NodeJS
Node, yaygın olarak yanlış anlaşılan bir canavardır. Özünde, JavaScript’in çalıştırmak için bir tarayıcıya ihtiyaç duymadığı ve NodeJS’nin JavaScript’i tarayıcı olmadan çalıştırma ortamı olduğu fikri yatar. Bu motor, genellikle NodeJS’yi bir sunucu olarak çalıştırmak için kullanılır. Ancak, özellikle kod dosyalarını oluşturan veya değiştiren kod olmak üzere bir bilgisayarda yerel olarak kod çalıştırmak için de yaygın olarak kullanılır. Sonuç olarak, modern geliştirme için kullanılan araçların büyük bir çoğunluğu aslında bilgisayarınızda çalışan NodeJS komut satırı uygulamalarıdır. Bu, daha sonra ele alacağımız Webpack veya Babel gibi şeyleri içerir. Bu, en azından Düğümün ne için olduğunu anlamanız gerektiği anlamına gelir.
Ekspres
Çekirdek Düğüm motoru, her türden istek ve yanıtlama işini yapabilir, ancak Express, rota eklemeyi, veri almayı vb. Kolaylaştırmak için bir çerçeve sağlar. Diğer pek çok şey gibi burada da yalnızca belirli bir gereksinimler, genellikle bilmeniz gereken bir şey değildir.
🚀 NPM
Node Package Manager, ya geliştirme araçları durumunda global olarak ya da bireysel projeye yerel olarak Node paketleri kurmak için bir komut satırı aracı. NPM “bağımlılıkları” (harici kod gereksinimi) package.json adlı bir dosyada listeler ve onları node_modules dizinine koyar. NPM gibi bir araç kullanmak, kullanmanız gereken şeyleri (Bootstrap, Moment veya tüm Angular) yüklemenizi ve yönetmenizi çok daha kolay hale getirir. Bu komut satırı aracını bilmeniz gerekir. Hatta biraz da isteğe bağlı değil.
💀 Yarn
NPM, başlangıçta yalnızca Node uygulamaları için içe aktarım dosyalarını işlemek için ve JavaScript geliştiricileri için genel araçlar için daha az yazılmıştır. Sonuç olarak, Yarn bu şeyler için yaratıldı ve optimize edildi ve yerel önbelleğe almayı ve daha hızlı, daha güvenilir kurulumları destekledi. NPM’nin daha yeni sürümleri özellik eşdeğeridir ve IMO şimdi İpliği görmezden gelebilir ve NPM’ye bağlı kalabilirsiniz.
Karar
NPM’yi bilmek ve kullanmak çok önemlidir, ancak Düğümde aktif olarak geliştirme yapmıyorsanız, yalnızca bu araçları kendi başınıza nasıl kullanacağınızı veya kullanacağınızı gerçekten bilmeniz gerekir.
CSS’nin ötesinde
Basamaklı Stil Sayfaları, özellikle büyük projelerde veya büyük ekiplerin bulunduğu projelerde kaotik ve düzensiz hale gelebilir. Bunları düzenlemenin veya bir şeyleri adlandırmanın resmi bir yolu yok, bu yüzden CSS’yi evcilleştirmek için bir dizi araç geldi.
DAHA AZ
Muhtemelen ilk “CSS Ön İşlemcisi” olan Less, değişkenler, karışımlar, işlevler, içe aktarma gibi şeyleri ve tüm süreci daha sürdürülebilir kılan bir sürü şeyi içeren programlı olarak CSS oluşturmanın bir yoludur. Daha net kapsam belirleme için çoğu özel kural iç içe yerleştirilebilir.
🚀 Sass, SCSS
Yukarıdaki LESS ile hemen hemen aynı şey, sözdizimi bile neredeyse aynıdır. Açıkça söylemek gerekirse, Sass herhangi bir parantez veya noktalı virgül olmadan yazılmıştır (yukarıdaki “CoffeeScript” bölümüne bakın), ancak SCSS normal CSS gibi ancak bazı ek özelliklerle yazılmıştır. İnsanlar bugünlerde Sass hakkında konuştuklarında, her zaman SCSS’nin saf “Sass” tarzı ölü olduğu anlamına geliyor. Teoride Sass ve Less rekabet ediyor, ancak pratikte Sass bu savaşı kazandı. Yukarıdakilerin tümü, tarayıcı tarafından kullanılmadan önce normal CSS’ye göre derlenir. Sass’ı tanımak son derece yararlıdır ve öğrenmek için minimum zaman yatırımı vardır. Paranın karşılığı harika ve sorgusuz sualsiz tavsiye ediliyor.
Stylus
Büyük ölçüde yukarıdaki gibi, yine CSS ön işlemesi için bir başka rakip standart.
PostCSS
Yine benzer bir yaklaşım.
BEM
Block-Element-Modifier’ın kısaltması olan BEM, CSS seçiciler için bir metodoloji ve adlandırma kuralıdır. CSS uygulamanın daha öngörülebilir, tutarlı ve anlaşılır bir yolunu bulmayı amaçlamaktadır. Bunun Sass gibi araçlarla tamamen uyumlu olduğunu unutmayın. Farklı sorunları çözerler.
Takım ve Görev Çalıştırıcıları
Modern web sitelerinde büyük miktarda “şey” oluyor, jquery.min.js’yi bir dizine yapıştırıp bir komut dosyası etiketiyle içe aktardığımız günlerden kesinlikle daha fazla. ES6 derlemesi (teknik olarak “aktarma”), Sass derleme, JavaScript ve CSS dosyalarını küçültme ve birleştirme, stil hatalarını kontrol etme, vb. Doğal olarak bu işlemi otomatikleştirmek için bir dizi araç vardır.
İnsanlar benim deneyimlerime göre “JavaScript Yorgunluğu” hakkında konuştuklarında aslında bu şey hakkında her şeyden daha çok konuşuyorlar. Son yıllarda hızlı hareket ediyor, ancak stabilize olmuş gibi görünüyor.
💀 Bower
Bower, bir ön uç paket yöneticisi olarak geliştirildi. Öyleyse, Bootstrap veya jQuery veya her neyse yüklemek için kullanırsınız. Artık tamamen NPM tarafından değiştirildi.
Babel
Asıl nokta, ES6 + kodunu yazabilmek ve Babel’in bunu tarayıcının okuyabileceği JavaScript türüne dönüştürmesini sağlamaktır. Oldukça kullanışlı olsa da, tipik olarak Babel’in kendisini kullanmazsınız, aşağıdaki araçlardan biri kullanır. Yani aslında hiçbir şey öğrenmenize gerek yok.
💀 Homurdanan
“Görev Koşucuları”, görevlerini yerine getirerek dediklerini yaparlar. Yapılmasını istediğiniz görevleri ve ne zaman yapılmasını istediğinizi siz tanımlarsınız. Örneğin, belirli bir kaynak dizinde .js dosyalarına kaydedilen bir değişiklik üzerinde bir linter çalıştırabilir, dosyaları Babel ile aktarabilir, dosyaları derlenmiş bir dizine kopyalayabilir, küçültebilir ve birleştirebilir ve ardından bir uyarı gösterebilir.
Gulp
Grunt ile aynı, ancak kullanımı daha kolay olan daha basit sözdizimi ile. Gulp çok hızlı bir şekilde Grunt’ın yerini aldı.
🚀 Webpack
Aaaa ve Gulp de hızla değiştirildi. Webpack çok daha büyük bir canavar ve sadece bir görev koşucusundan daha fazlası. Kendisini bir “modül toplayıcı” olarak görüyor ve ana görevi modern ES6’nın tüm ithalatlarını ve eşyalarını idare etmektir. Bir dizi farklı dosya ve içerik türünü (.vue dosyaları, svg, typcript, React JSX, Sass vb.) İşleyebilen yığınlar içerir. Webpack hakkında temel bir anlayışa sahip olmak yararlıdır.
Browserify
Webpack ile büyük ölçüde aynı hedefleri dolduran, ancak daha az kapsamlı (ve karmaşık) bir API ile, Browserify artık büyük ölçüde yerini almıştır ve Webpack alanını sürekli olarak ele geçirmiştir.
CSS Çerçeveleri
CSS çerçevelerinin amacı, bir web sitesinin temel görünümünü ve düzenini oluşturmaktır. Düğme stilleri, yazı boyutları, renkler, form düzeni ve aralık gibi konularda tutarlılığın korunmasına yardımcı olurlar. Çoğu çerçeve bize bir “ızgara” oluşturur, ancak bu aslında satırdan çok sütunlarla ilgilidir. Tipik olarak bu 12 sütunlu bir ızgaradır. Bunun anlamı, yalnızca üç sütun kullanarak genişliğin dörtte biri kadar genişlikte bir arayüze sahip olabileceğinizdir. Ardından ana içerik bölümünü kalan dokuzunu kullanacak şekilde ayarlarsınız. Ya da altı ve altıyı ayarlayarak ikiye bölüyorsunuz. Veya üçte bir. Altıncı vb.
Yine de en önemli özellik, cihaz ekranının boyutuna bağlı olarak bunların değişmesine izin vermeleridir. Dolayısıyla, bir masaüstü ekranında üç, bir tablette iki ve bir cep telefonunda yalnızca bir sütununuz olabilir. Bu tür “duyarlı” düzen, baş belasıdır ve CSS’deki medya sorgularıyla çok fazla uğraşmayı gerektirir. Bunu yapmak zorunda olmamak tek başına buna değer.
🚀 Bootstrap
Orijinal ve en iyi desteklenen CSS çerçevesi olan Bootstrap, bu alanda hala baskın oyuncu. Sürüm 4 yalnızca bu yıl çıktı ve pek çok güncelleme yapıldı. Bootstrap sitelerinin hepsinin aynı göründüğüne dair bir algı var, bu sadece Bootstrap kullanıyorsanız ve başka değişiklik yapmıyorsanız doğrudur. Tasarım sürecinin sonundan ziyade başlangıcı olarak düşünülmeli ve kapsamlı bir şekilde özelleştirilmelidir.
Foundation
Muhtemelen Bootstrap’in ilk gerçek rakibi olan Foundation, aşağı yukarı aynı şekilde çalışıyor.
Bulma
Dosya boyutu ve kapsamı (veya popülerliği) Bootstrap kadar “büyük” olmayan Bulma, özellikle duyarlı bir ızgaraya sahip olmak için hala çok fazla destek ekleyen nispeten hafif bir alternatiftir.
Sonuç
Burada listelenen pek çok teknoloji var. Bunları bir tür gereklilik olarak düşünmemek önemlidir. Unutmayın, web geliştirmedeki temel unsurlar HTML, CSS ve JavaScript’tir. Her şey bir olan optimizasyon ve süreç ve bakım genellikle bir optimizasyon yerine daha iyi bir şey sağlayarak veya kullanıcı için bile farklı. Bu optimizasyonlara ihtiyacınız yoksa veya bunlara değer vermezseniz, onları göz ardı edin.
Birinin bir teknolojiden bahsettiğini duyarsanız, bu onu öğrenmek zorunda olduğunuz veya hatta ne olduğunu öğrenmeniz gerektiği anlamına gelmez. Bir süredir pek çok insanın bunun hakkında konuştuğunu duyuyorsanız , dikkat etmek isteyebilirsiniz, ancak o zaman bile, teknoloji sizin için gerçek bir sorunu çözmedikçe, endişelenmenize gerek yok.
Dilerseniz Bir Sonra Ki Blog Sayfalarımıza Göz Atabilirsiniz..
Görüşmek Üzere Hoşçakalın WebOdasıyla Kalın..
Hata!
Yorumunuz Çok Kısa, Yorum yapabilmek için en az En az 10 karakter gerekli