درک مزایای زبان های وب “عجیب”.

این پستی است برای کمک به مبتدیان برای یادگیری درک ویژگی های فن آوری های وب. من برخی از مفاهیم اساسی را از دیدگاه خودم به عنوان اولین پذیرنده HTML، جاوا اسکریپت و CSS به اشتراک خواهم گذاشت. آموزش، صحبتها و حتی آهنگها و شعرهایی که ممکن است به شما کمک کند احساس طبیعی تری در مورد آن زبانهای قدیمی وب عجیب و غریب داشته باشید.
عجیب و غریب، ناسازگاری، و عمدی تحمل خطا
جدا از هنجارها و ناسازگاریهای ناخواسته که به تاریخچه آشفته و بحثانگیز پیش از استانداردها و توصیههای کنونی نشان میدهد، HTML و CSS به دلیل تحمل عمدی خطاها و پیروی از اصل استحکام خاص هستند.
بیش از یک راه برای رسیدن به آن
به نقل از یک شعار قدیمی پرل: در بسیاری از زبان های برنامه نویسی، بیش از یک راه برای انجام کاری وجود دارد. سبک کد، پارادایم ها، الگوها، نامگذاری اشیا و انتخاب ابزارها و چارچوب ها.
سبک کد ممکن است به کوچکترین مشکل تبدیل شده باشد، موضوعی سلیقه ای و زیبایی شناختی، همچنین خوانایی، اما عمدتاً با قراردادها و توصیه ها حل شده است و با استفاده از لینترها و IDE ها قابل خودکار شدن است. پارادایم ها و الگوها همچنین می توانند به سلیقه، تجربه و الزامات بستگی داشته باشند، اما برخی از “الگوهای طراحی” نسبتاً جهانی وجود دارد که برای هر نوع توسعه نرم افزاری مفید است.
سختگیری و تحمل خطا
اما مخالفت اساسیتری نسبت به ترجیح زبانهها، فاصلهها یا نحوه تراز کردن براکتها و براکتها وجود دارد. بسیاری از مردم برنامه نویسی را به دلیل وضوح و انتزاعی بودن آن دوست دارند، در حالی که دیگران، به ویژه توسعه دهندگان وب، یاد گرفته اند که با استفاده از ابزارهای ناقص، هک ها و میانبرهایی کدنویسی کنند که برای کسانی که دارای سابقه تحصیلی یا اولویت هستند، شبیه کدهای اشتباه به نظر می رسد.
نشانهای محصول در تصویر جلد این مقاله شامل زبانها و فناوریهای مختلفی است که برخی از آنها هنوز هم برای توسعه وب مرتبط هستند: HTML، CSS، JavaScript / ES / TypeScript (و DOM)، SVG، PDF، PHP، SQL / mySQL / MariaDB. ، mongoDB و Node.js، موفق ترین پیاده سازی سمت سرور جاوا اسکریپت تاکنون.
برای سادگی، من در این پست به موضوع تغییرات نحوی و پسوندها نمی پردازم. به زودی در مقاله دیگری به TypeScript، CoffeeScript، Sass و کمتر پرداخته خواهد شد.
اما آیا کسی هنوز پرل، فلش و اکشن اسکریپت را به یاد دارد؟ و آیا شباهت React و ColdFusion یا حداقل شباهت لوگوهای آنها را تشخیص می دهید؟
راز موفقیت
برخی از فناوری ها می آیند و می روند، در حالی که برخی دیگر وجود دارند تا بمانند. اما چرا؟ HTML، جاوا اسکریپت و CSS راه درازی را پیموده اند و جدا از پشتیبانی داخلی مرورگر، ممکن است راز دیگری برای موفقیت آنها وجود داشته باشد.
فناوری وب، حداقل در قسمت جلویی، بیشتر تلاش کرده است از اصل استحکام، که به عنوان قانون پوستل نیز شناخته می شود، پیروی کند. دلایل متعدد، کم و بیش معتبری برای انجام این کار، و نوعی بن بست پس از کنار گذاشتن استحکام با XHTML، مبتنی بر XML وجود داشته است. نیاز به یک ساختار سند خوب به این معنی است که ممکن است مجبور شویم یک اطلاعات مفید و قابل استفاده را در صورتی که حاوی یک کاراکتر نامعتبر باشد، کنار بگذاریم.
UTF-8 برای تسهیل همکاری جهانی
هنگامی که مجموعه کاراکترهای “غربی” که به عنوان ANSI استاندارد شده بود، توسط UTF-8 جایگزین شد، یک پسوند غیررسمی ANSI که توسط مایکروسافت معرفی شده بود، نامعتبر تعریف شد. تعداد انگشت شماری از کاراکترها با هیچ چیز دیگری در تضاد نبودند و کاراکترهای مشابهی در رمزگذاری جدید وجود داشت، اما طبق استانداردهای رسمی، هیچ راه معتبری برای تبدیل آن کاراکترها به کد UTF-8 مربوط به آنها وجود نداشت.
عصبی، شکننده، ناخوانا: برخی از فناوری ها برای همیشه ناپدید شده اند.
من چندین بار با رابطهای SOAP کار کردهام که به دلیل کاراکترهای نامعتبر رسمی شکسته شد و باعث اضافه کاری و رفع فوری یک سیستم در حال اجرا شد. همچنین زمانی را به یاد میآورم که فضای ذخیرهسازی کمیاب بود و برای ذخیره فایلهای بزرگ به یک دسته فلاپی دیسک نیاز داشتم. فرآیند پوشاندن دیسک نیز مستعد شکستن در یک خطا بود، که – طبق قانون مورفی – به نظر میرسید که به احتمال زیاد هنگام قرار دادن آخرین دیسک برای تکمیل فرآیند بازیابی اتفاق بیفتد. من به همین دلیل از نحو تورفتگی (مانند Python و YAML) و فایلهای JSON متنفرم.
پردازش متحمل خطا میتواند به حفظ دادههای ارزشمند با وجود خطاها کمک کند و با حذف دادههای اضافی میتواند فضای ذخیرهسازی یا پهنای باند را ذخیره کند.
برخی از روشها به دلایل خوبی منسوخ شدهاند، زیرا وضوح و قابلیت نگهداری به وضوح مهمتر از بهینهسازی چند میلیثانیه زمان بارگذاری است.
همانطور که می بینیم، انواع مختلفی از رفتار غیر سختگیرانه وجود دارد. من از متغیرهای ضعیف یا بدون تایپ حمایت نمی کنم، اگرچه این جنبه دیگری از فناوری وب در شکل اصلی آن است و دلیل اینکه ما به توصیه های استانداردهای TypeScript و PHP (PSR) نیاز داریم. تحمل خطا ممکن است افراد را به بهینه سازی بیش از حد دعوت کند و درک کد و معرفی منابع بالقوه جدید خطا را دشوارتر کند. اما این مشکل را می توان با حمایت از کد منبع دقیق و منظم، که ممکن است به یک خروجی فشرده تر منتقل شود یا نه، برطرف شود. در واقع این نکته اصلی استحکام است: “در آنچه می پذیرید لیبرال باشید و در آنچه می فرستید محافظه کار باشید“.
سختگیر + متحمل = اصل استحکام
استحکام نباید بهانه یا دعوتی برای نوشتن کدهای نامرتب باشد، بلکه در عوض مشتریان را در برابر اشتباهات احتمالی و همچنین در برابر تغییرات نحوی و ارتقاء انعطاف پذیر می کند. بر خلاف جاوا اسکریپت که علیرغم شلختگی آن، هنوز سختگیرترین و غیرقابل تحمل خطا از فن آوری های کلاسیک وب جلویی است، HTML و CSS اجازه می دهد تا توسط نحو آینده گسترش یابد، بنابراین مشتریان باید عناصری را که به طور رسمی صحیح هستند اما ناشناخته هستند نادیده بگیرند. اجرای فعلی این اصل نحوی پایه ای برای افزودن برچسب های سفارشی و تعریف اجزای وب امروزی است.
محل قرار دادن خط فاصله در فضای سفید: nowrap
متأسفانه، برخلاف ویژگیهای اختیاری HTML، CSS، و جاوا اسکریپت، تاریخ به شیوهای علامت نحوی خود را به جای گذاشته است که برای ما چارهای جز یادگیری یا تکیه بر اسناد و تکمیل کد باقی نمیگذارد. مانند زبانهای طبیعی، ناهماهنگیهایی که برای زبانآموزان بزرگسال غیرمنطقی و ناسازگار به نظر میرسند، درست و طبیعی هستند و توسط پذیرندگان اولیه مورد توجه قرار نمیگیرند. در حالی که من هنوز برای به خاطر سپردن برخی ویژگیهای انعطافپذیری و شبکهای CSS تلاش میکنم، میدانم خط فاصله را در “فاصله سفید: nowrap” کجا قرار دهم و حتی میتوانم به شما بگویم که #a31e04 تنها با نگاه کردن به نماد هگزا دسیمال، یک رنگ مایل به قرمز است. در حالی که CSS به طور خاص ممکن است یک زبان کاملاً عجیب و غریب باشد، من آن را به دلیل اینکه عمدتاً بیانی است و البته به دلیل ویژگی های قوی آن دوست دارم.
یاد بگیرید که آن زبان های قدیمی عجیب و غریب را دوست داشته باشید
چگونه می توانیم یاد بگیریم که آن زبان های قدیمی عجیب و غریب را دوست داشته باشیم؟ خوب، ما می توانیم با در نظر گرفتن آنها به عنوان چنین شروع کنیم. زبانهای قدیمی عجیب و غریب، مانند یونانی باستان، لاتین یا زبانهای تخیلی که توسط نویسندگانی مانند JRR Tolkien اختراع شدهاند. اما شاید بهتر باشد CSS و HTML را با یک زبان گفتاری مقایسه کنم که هنوز کاملا قدیمی و پر از تناقض است: انگلیسی. انگلیسیها و آمریکاییها ممکن است در هنگام تغییر دیدگاه حدس بزنند که غیر بومیها میدانند: آیا تا به حال فکر کردهاید که چگونه بوم، زوم، انتخاب یا پاورقی را تلفظ کنید؟ چرا در وهله اول باید به آن نگاه کنیم یا با دقت گوش کنیم؟
گفتگو، آموزش، آهنگ، و شعر
در زبان های طبیعی ما آهنگ ها و شعرها یا ضرب المثلی داریم که پدربزرگ و مادربزرگ یا معلمانمان به ما گفته اند. در توسعه وب، ما صحبت ها و آموزش های بسیار خوبی داریم و حتی آهنگ و شعر نیز داریم. اگر دانشجو هستید یا شغل آزاد تنها پشت میزتان هستید، هدفون خود را بگذارید و همه آن ویدیوهای زیبا را تماشا کنید و اگر می توانید به سخنرانی ها و کنفرانس ها نیز بروید. سخنرانیهای خوبی در FrontendMasters، Udemy و YouTube وجود دارد، و DevToks (نه تنها در TikTok) وجود دارد که در آن آهنگها و شعرهایی در مورد توسعه وب که قبلاً ذکر شد، خواهید یافت.
برخی از نامها و پیوندها: لی ورو، سارا سویدان، سارا دراسنر، هیدون پیکرینگ، میشل بارکر، استفانی استیماک، استفانی والتر، احمد شادید، راشل اندرو و بسیاری دیگر. همچنین نسخههای نمایشی بسیار خوبی در CodePen و جاهای دیگر و برخی آموزشهای گرافیکی مانند آموزش افسانهای SpeciFISHity وجود دارد.
کدنویسی با تمام حواس ما مانند یک صنعتگر
بنابراین ما میتوانیم کد خود را ببینیم، بخوانیم و بشنویم، و حتی گزارشهایی مبنی بر «بوی کد» وجود دارد. اما برای ارتباط با کدنویسی باید شروع به تایپ کنیم و حروف، اعداد و نمادها را با دست خود وارد کنیم و نتایج کارمان را بررسی و اصلاح کنیم و جنبه هنری یا حتی هنری توسعه وب را کشف کنیم.
نتیجه
مهم نیست که فناوری وب را «برنامهنویسی» میبینید، اما اگر آنها را بهعنوان زبانهای طبیعی ببینید که باید با تمام حواس خود آنها را کشف کنید تا حس «طبیعی» نحوه استفاده از آن را به دست آورید، یادگیری آنها را آسانتر میکند. آنها را به درستی