Harry Roberts یک متخصص زبان CSS و طراح حرفهای رابط کاربری است که در این پست قصد داریم مصاحبه با وی را که حاوی یکسری دیدگاهها و انتقال تجربیاتش به دیگر دولوپرهای فرانتاند است، مد نظر قرار دهیم (با دنبال کردن شناسهٔ csswizardry در توییتر، شما هم میتوانید به جمع هزاران هوادار وی بپیوندید.)
از دید هری رابرتر، زبان سیاساس هنوز در جایگاهی قرار دارد که حال توسعه است و سایتها در حال بزرگتر شدن و صد البته پیچیدهتر شدن هستند و امروزه حرکتی به سوی ساختارهایی شکل گرفته که بیشتر محصول-محور باشند به طوری که در تضاد با ساختارهایی است که تنها یک وبسایت معمولی را در معرض دید کاربران قرار دهیم.
ورود هری رابرتز به دنیای وب
هری رابرتز به طور اتفاقی درگیر وب شد. وقتی که نوجوان بود قصد داشت تا مهندس معمار شود و بعد از ظهرها وقت خود را با کار کردن در یک فروشگاه محلی لوازم چاپ سپری میکرد که از این طریق با تعداد زیادی از مهندسهای معمار در ارتباط بود و در این بین او و یکی از دوستانش شروع به انجام کارهای طراحی برای شرکتهای محلی کردند اما در ادامهٔ فعالیتش او متوجه شد که باید آثار خود را به صورت آنلاین به نمایش بگذارد و در آنجا بود که به این نتیجه رسید اگر به توسعهدهندگی مشغول شود، به مراتب بیش از طراحی موفق خواهد شد.
همانطور که گفته شد، هری رابرتز هیچ آموزشی به صورت آکادمیک ندیده است و او خود را به قدر کافی در توسعهٔ وب باانگیزه یافته بود که خودش را کاملاً در آن غرق کند. از دید وی، خودآموزی یک نقطه مثبت دارد و یک نقطهٔ منفی. نقطهٔ مثبت این است چون میتوانیم هر چیزی را با سرعت دلخواه خود یاد بگیریم، میتوان هر چیزی را که میخواهیم در هر زمانی که اراده کنیم فرا بگیریم و نقطهٔ منفی آن هم این است که اگر این مسیر را دنبال کنیم، به طور رسمی با زبانهای برنامهنویسی آشنا نخواهیم شد و در چنین شرایطی کمتر کسی وجود دارد که به ما بگوید لازم است چه چیزهایی یاد بگیریم (جالب است بدانید که بر اساس آمار استک اورفلو، چیزی در حدود ٪۵۰ از دولوپرهای سرتاسر دنیا تحصیلات آکادمیک ندارند!)
عادت به بررسی سورسکد
در رابطه با سورسکد خوانی، هری رابرتز توضیح میدهد که سرگرمی وی در حل کردن مسائل و ور رفتن با اشیاء خلاصه میشود. به گفتهٔ وی:
من از آن دست افرادیام که میگویند اگر چیزی شکسته نشده، اون رو بشکنید و ببینید چهطور کار میکنه. من با هر چیزی کلنجار میرم و مهندسی معکوس میکنمش تا از ماهیتاش سر در بیارم.
برخی دولوپرها عادت دارند زمانی که در اینترنت گشت میزنند، بر حسب عادت کلیک راست میکنند و سورس صفحات را مشاهده میکنند. وی میگوید زمانی که در ابتدای راه بود، خیلی نمیتوانست این کار را به صورت حرفهای انجام دهد اما این چیزی است که وب را به سمت جلو حرکت داد و اگر او نمیتوانست سورس صفحات را ببیند، هرگز امروز یک توسعهدهندهٔ وب نبود. در یک کلام، از دید وی این کار روش بسیار خوبی برای یادگیری #طراحی سایت است.
چیزی که وی به سرعت پس از ورود به بازار کار یاد گرفت این بود که مصلحتگرایی از کمالگرایی پیشی میگیرد. به عبارت دیگر، سایتی که کدنویسی نامناسب و کثیف دارد اما هنوز کار میکند، به مراتب ارزشمندتر از سایتی است که کدهای زیبا دارد اما کار نمیکند. به عنوان مثال، هری رابرتز دولوپرهای تازهکار را متوجه سایتهایی نظیر فیسبوک و گوگل میکند و در رابطه با چنین سایتهای معروفی اعتقاد دارد که کدنویسی این سایتها حقیقتاً افتضاح است اما آنها پاسخگوی میلیونها نفر در طول روز هستند و کاربران اهمیتی به کدنویسیشان نمیدهند چرا که این سایتها به شدت کارا هستند.
تمرکز بر SASS
یکی از حوزههایی که به عقیدهٔ هری رابرتز نیاز به کمی سختکوشی بیشتر دارد، کار کردن با پیشپردازندهها است. پیشپردازندهها ابزارهایی هستند که دادههای ورودی را میگیرند، آنها را پردازش میکنند، دادههای خروجی تولید میکنند تا به عنوان خروجی در برنامههای دیگر استفاده شوند. Syntactically Awesome Style Sheet یا به اختصار SASS، یکی از پیشپردازندهٔ زبان سیاساس است و این امکان را به شما میدهد تا ویژگیهایی را که این زبان ندارد، مثل استفاده از متغیر و توابع، برای کدهایتان ایجاد کنید و با این کار سرعت و زیبایی کدهای خود را افزایش دهید.
هری رابرتز توضیح میدهد که یک مسئله این است که در SASS اگر چیز به درد نخوری بگذارید، چیزی به درد نخوری هم تحویل خواهید گرفت! او تأکید میکند که این نکته بسیار حائز اهمیت است که از این حقیقت آگاه باشیم که آنچه پیشپردازندهها به عنوان خروجی تحویل میدهند، چیزی است که منتج به سیستمهای کاربران میشود.
علاوه بر تعداد طرفداران زیادی که SASS دارد، با وجود این گروه زیادی از دولوپرها هم مخالف آن هستند اما هری رابرتز اعتقاد دارد که اگر نمیتوانید درست با SASS کار کنید، از آن استفاده نکنید. به عقیدهٔ وی، همه چیز به شرایط پروژه وابسته است به طوری که اگر به درستی از SASS استفاده نکنید، این پتانسیل را دارد که پروژه را با مشکل مواجه سازد و مثل این است که بگوییم تفنگ بد است در حالی که اگر از اسلحه برای محافظت از مردم استفاده شود، چیز بسیار خوبی هم هست.
او توصیه میکند زمانی که از SASS استفاده میکنید، در مورد آن هوشیار باشید و به آن به عنوان یک مکمل چابک نگاه کنید و هیچوقت از یک ابزار تنها به این دلیل که در مقالهای در مورد معرکه بودن آن خواندهاید استفاده نکنید بلکه چالشهای پیش روی خود را مد نظر قرار داده و چیزی را پیدا کنید که آنها را حل خواهد کرد. در یک کلام، باید بدانید که این فناوری یک عصای جادویی نیست.
مذاکره با مشتریان
هری رابرتز پروژههای مهمی همچون BBC ،NHS ،Booking.com و Financial Times را در کارنامهٔ خود دارا است. او در مورد دورانی که در حال مشاوره با چنین سازمانهای بزرگی بود، میگوید که در حقیقت معمولاً مسائل از سطح کسبوکار برمیخیزند. معمولاً شرکتها فکر میکنند چیزهای زیادی وجود دارد که صرفاً یک توسعهدهنده میتواند انجام دهد تا عملکرد ناشی از یک تصمیمگیری ضعیف در سطح کلان توسط مدیران شرکت را بهبود بخشد که چنین نگاهی عملاً اشتباه است.
فرهنگ سازمانی مشتریان
هری رابرتز به قانون Conway رجوع میکند که به احترام برنامهنویسی به نام Melvin Conway نامگذاری شده است که در 1968 در اظهار نظری عنوان کرد شرکتهای نرمافزاری طرحهایی تولید میکنند که کپیهایی از ساختارهای ارتباطی آن سازمانها هستند. در اصل، رابط کاربری نرمافزارها، ساختارهای اجتماعی شرکتهایی که آنها را تولید کردهاند را انعکاس میدهند.
از دید وی، شناخت نوع کسبوکار مشتری مسئلهٔ بسیار مهمی در شناخت چرایی و چگونگی فرآیند کدنویسی و پیادهسازی اپلیکیشن است. قبل از آنکه به یک مشتری مراجعه کنیم، باید ابتدا اطلاعاتی در مورد سازمان به دست آورده و آنها را بررسی کنیم و در صورت امکان، تماسی با چند نفر از تصمیمگیران باید داشت تا در مورد نقطه نظرات آنها دید نسبتاً خوبی پیدا کنیم.
بررسی سورسکد
وقتی که بحث به قسمتهای اصلی و بررسی و تحلیل کدها میرسد، هری رابرتز میگوید که از ابزار Parker استفاده میکند. پس از آن، او CSS Lint که با استفاده از ابزارهای توسعهٔ کروم ایجاد شده است را پیشنهاد میدهد که به عنوان ابزاری برای کمک در تشخیص مشکلات مربوط به کدهای سیاساس مورد استفاده قرار میگیرد.
بسازید تا بماند
در کنار ایجاد سایتهایی که به سرعت اجرا میشوند و پرفورمنس خوبی هم دارند، یکی موضوع مهم دیگر برای هری رابرتز ساخت سایتهای پایدار است؛ آنهایی که پس از لانچ نیاز به پشتیبانی و نگهداری زیادی ندارند. به گفتهٔ وی، او در شرکتهایی کار کرده که عمر سایتهایشان به یک الی دو سال میرسد و احتمالاً لازم است تا برای ده سال دیگر هم باقی بمانند و کار کنند که کلید این کار سادگی است. در عین حال، به خاطر داشته باشید که هیچ فریمورک یا زبان برنامهنویسی خاصی وجود ندارد که بتواند سایت شما را برای بیش از دو دهه سَرپا نگاه دارد.
عدهٔ زیادی از مشتریان مستعد آن هستند که گرفتار جذابیت آخرین، برترین و درخشانترین فناوریهای روز دنیا شوند. برای مثال، ممکن است آنها بخواهند از یک فناوری جدید استفاده کنند و برای اطمینان از سازگاری آن با مرورگرهای قدیمی، کلی هزینه محتمل شوند اما با این کار دولوپر دو کار اساساً اشتباه را برای خود ایجاد کرده است. در واقع، چیزهای جدیدی را برای مرورگرهای قدیمی و چیزهای قدیمی برای مرورگرهای جدید در نظر گرفته است!
موضوع این است که چیزهای قدیمی در همه جا کار میکنند و از همین روی اگر سایت شما لازم باشد که برای مدت طولانی باقی بماند، تنها از چیزی استفاده کنید که در همه جا کار میکند. با این وجود، پایدار بودن در شرایط مختلف معانی متفاوتی دارد. هری رابرتز متذکر میشود اگر در شرکتی کار میکنید که احتمال تغییر و جابهجایی کارمندان زیاد است، پایداری میتواند فقط این معنا را در بر گیرد که کدهایی بنویسید که پس از رفتنتان سایرین بتوانند با آنها کار کنند اما این در حالی است که در شرکتی با ساختار درون سازمانی متفاوتتر، پایداری میتواند معانی به مراتب متفاوتتری داشته باشد.
در خاتمه هم هری رابرتز اقرار میکند که اگر بخواهید سایتی بسازید که جذابیت بسیار زیادی داشته باشد تا سود زیادی را برای کسبوکار مربوطه رقم بزند، پیشگام بودن در استفاده از فناوریهای مدرن میتواند کاری پرخطر باشد زیرا وقتی که همهٔ جوانب کار را مد نظر قرار میدهید، خواهید دید که سادگی همیشه راهحلی است که نتیجه میدهد.