قراردادهای خوانش

سه شنبه، 4 دی 1397

Farsi
Programming
مطالب برنامه نویسی

مقدمه

واقعیت اینجاست که نوشتن مطلب درباره ی برنامه نویسی دردسر زیادی دارد! هر روز ساعت ها با هم درباره ی پروژه و تکنولوژی و موضوعات فنی به راحتی گفت و گو می کنیم اما همین که تصمیم به نوشتن می گیریم ذهن مان شروع به Not Responding می کند! دلیل این اتفاق حجم عظیم واژه ها و اصطلاحاتی تخصصی است که پیدا کردن معادل فارسی شان سخت است. در این پست قصد دارم مشکلات این چنینی را با راه حل شان بیان کنم تا قراردادی باشد برای چگونگی خوانش پست های آتی.

هدف این متن رسیدن به قراردادی است که در آن بتوان بهترین شیوه در تحریر متون فنی را توافق کرد. منظور از "بهترین" هم قالبی است که بتواند محتوا را به ساده ترین شکل و با کم ترین انرژی به خواننده منتقل کند. امیدوارم دوستان هم اگر نظری برای بهبود این مهم دارند ارائه کنند تا بتوانم در نوشتار مطالبم رعایت کنم.

تکلیف زبان فارسی با زبان تخصصی ما به نوعی مشخص نیست. علم و تکنولوژی با شتابی نجومی در حال پیشرفت است و این پیشرفت باعث تولد لغات و اصطلاحات جدید می شود که با خودشان بار معنایی خاصی را همراه دارند. احتمالا هیچ برنامه نویسِ فارسی زبانی از گفتن جمله های زیر احساس خوبی ندارد:

"ما برای موفقیت بیشتر از اصولِ چابک استفاده می کنیم"
"We use agile methodology to success"
"برای بالا بردن سرعت این برنامه باید از تکنیک های ریسندگیِ چندگانه استفاده کرد"
"We need to use multi-threading techniques in order to improve the performance"

راه حل

تمام سعی من بر این است که زبانِ مطالبِ درج شده در این سایت بسیار نزدیک به آنچه باشد که در گفت و گوی روزانه مان استفاده می کنیم. بنابراین تمام لغاتی را که در فارسی معادل شسته رفته ندارند را به همان شکل خواهم آورد. استفاده از واژه ها و اصطلاحات انگلیسی در گفت و گوی روزانه ی ما امری طبیعی و قابل فهم است، اما همیشه هم نوشتن آنچه که می گوییم راحت نیست. اصولا مشکلات نوشتاری را می توان به 4 گروه تقسیم کرد که به شرح ذیل است.

  1. اولین و بدیهی ترین گروه که شاید نیاز به گفتن هم نداشته باشد، اسامی هستند. از این دسته می توان C#، SQL، Heroku و غیره اشاره کرد. طبیعی است که این کلمات به همان شکل وارد متن فارسی خواهند شد.
  2. اصطلاحات و لغاتی که علی رغمِ داشتنِ معادلِ فارسی ترجیح می دهیم از همان صورت انگلیسی شان استفاده کنیم. مثلا:
    "باید رابط برنامه نویسی نرم افزار را مطابق نیاز تغیر داد"
    "باید API را مطابق نیاز تغیر داد"
    در نهایت به لغات و اصطلاحاتی برمی خوریم که بی حجاب و بی شرم خود را به همان صورت وارد زبان ما کرده اند و صغیر و کبیر و وزیر و برنامه نویس، همه و همه آن ها را همان طور که هستند می نویسند و می خوانند. چه بهتر! چرا که استفاده از این گروه به مثال هلو اندر گلوست! برای مثال می توان به "تکنولوژی" یا "فیلتر" اشاره کرد.
  3. اصطلاحات و لغاتی که دارای معادل فارسی قابل فهم اند. از آن جمله می توان به "گذرواژه" برای Password اشاره کرد. شاید هم به نظر خواننده اصلا این چنین نباشد و "گذرواژه" هم متعلق به همان گروه لغات بی آبرو باشد (مثل Threading و دیگران). اما در کمال بی تفاوتی باید بگویم "خب به من چه!"، چرا که این کلمه در دایره ی لغات سوگولیِ این بنده ی حقیر است!
  4. آخرین مشکل مربوط به ترکیباتی است که کلمات انگلیسی می توانند در جملات فارسی ایجاد کنند. یعنی جاهایی که کلمات در نقش مضاف/مضاف الیه یا موصوف/صفت ظاهر می شوند. البته خیلی از ناخوانایی های ناشی از موارد این چنینی با چیدمان مجدد جملات قابل رفع اند اما گاهی هم این طور نیست. به جمله ی زیر دقت کنید:
    "در MvcMiddleware پنج نوع فیلتر وجود دارد که هر کدام در یک stage ِ خاص اجرا می شود"
    در این جمله کلمه ی Stage در نقش موصوف و کلمه ی "خاص" در نقش صفت آن ظاهر شده است. راه حل من برای مشکلات این چنینی نشانه ی { ِ } است که بعد از stage آمده است. با این قرارداد می توان جملات پیچیده تر را هم به راحتی نوشت و خواند:
    "Requestهای preflight با verb ِ‏ OPTIONS ارسال می شوند"
    خوانش این جملات دقیقا همان طوری است که در گفت و گوی روزمره مان استفاده می کنیم. در ادامه مثال های بیشتری آورده شده است.
    "بهترین راهکار در این مواقع استفاده از Design Patter ِ‏ Builder است"
    "قبل از بررسی Frameworkهای Javascrip باید چند نکته را یادآور شد"
    در نهایت هر کجا که معادلِ فارسی رساییِ کافی را داشت از آن استفاده می کنم و شاید صورتِ انگلیسی آن را هم برای شفافیت بیشتر بنویسم:
    "مد نظر قرار دادن اصولِ ‎(SOLID Principles) SOLID‎ باعث سادگیِ طراحی می شود"