Lars Hvam در کپنهاگ دانمارک زندگی میکند و عاشق زبان برنامهنویسی ABAP است. پس از آنکه مسیر ABAP را در Exercism راهاندازی کرد، با Lars گپی دوستانه زدیم و دربارهی این صحبت کردیم که چطور سر از دنیای فناوری درآورد.
Jonathan: سلام و به همه خوش آمدید. اسم من جاناتان است. من میزبان پادکست Exercism هستم و امروز Lars همراهم است. الان کجا ساکن هستید؟ Lars.
Lars: من در کپنهاگ، دانمارک هستم.
Jonathan: خوب است. عالی. پس کمی بالاتر از خط استوا. من در این لحظه خیلی پایینتر از خط استوا هستم. خیلی خوشحالم که امروز در برنامهی ما هستید. خیلی خوشحالم که توانستیم این گفتگو را داشته باشیم. و مستقیم میرویم سر اصل مطلب. به برنامهی این هفته. پس Lars، کمی از خودتان برایمان بگویید. شما چطور وارد دنیای فناوری شدید؟ چطور شد به جایی که الان هستید رسیدید؟
Lars: بله، ببینیم، الان کجا هستم، همانطور که گفتیم کپنهاگ. اما عمدتاً در مشاوره در حوزهی code اختصاصی SAP و ABAP کار میکنم. و چطور به آنجا رسیدم؟ بله، مثل همیشه داستان طولانی است. اما فناوری است. پس بیایید دربارهی مسیرهای فناوری حرف بزنیم. وقتی جوان بودم، که خیلی وقت پیش بود. من و دوقلوی همسانم. من...
Jonathan: شما یک دوقلوی همسان دارید، پس من از کجا بدانم امروز آن یکی دوقلو نیست که دارد حرف میزند.
Lars: دارد کارهای Microsoft انجام میدهد.
Jonathan: باشه. ترسناک.
Lars: چیزها. پس فقط هر چیزی دربارهی SAP از او بپرسید. بعد او نمیتواند چیزی دربارهی Microsoft از من بپرسد. بعد من نمیتوانم جواب بدهم.
Jonathan: بله.
Lars: اما وقتی جوان بودیم، شروع کردیم به بازی روی Commodore 64، و یادم میآید که برنامهنویسی خیلی ابتدایی به زبان BASIC روی Commodore انجام میدادم، روی یک صفحهی تلویزیون سیاهوسفید و خیلی کوچک. ساعتها این کار را میکردم، بعد یک کامپیوتر تازه گرفتم و کارهای QBasic را روی ۳۸۶ و ۴۸۶ انجام دادم. بعد به هشت مگابایت حافظه ارتقا دادم، که آن روزگار خیلی بود. بله، آن QBasic بود و برنامهنویسی Pascal. در نهایت به Windows رسیدم. و کلی Visual Basic کار کردم. بله، من Visual Basic را دوست داشتم. آن مربوط به آن سالها بود، دههی نود، و در نهایت وارد کار با Linux شدم. و بله. برای کسانی که آن روزهای خوب قدیم Linux را به یاد میآورند، آن وبسایت themes.org بود که میشد برای مدیرهای پنجرهی مختلف تم دانلود کرد. خیلی چیزِ Linux. و فکر میکنم آن اولین بار بود که واقعاً با فضای جامعه درگیر شدم، و با ساختن آن وبسایت با PHP وقت گذراندم. بله.
Jonathan: باشه. وای.
Lars: چند مهر هم روی من خورد. Visual Basic، و برنامهنویسی در دورهی دکتری. بله.
Jonathan: باشه. عالی. عالی. بله، این خوب است.
Lars: و در نهایت به دانشگاه رفتم، کارشناسی ارشد علوم کامپیوتر گرفتم و هر برنامهنویسی که پیش میآمد انجام دادم و بهشکلی تصادفی یک شغل کوچک پیدا کردم چون... بله. پول لازم داشتم تا اجارهام را بدهم. و برنامهنویسیهای دیگر. همین در حدود ۱۵ سال گذشته با من مانده است: توسعهی code اختصاصی SAP ABAP. و بله. خب، سؤال بعدی. چرا؟ چرا ماندگار شد؟ چون ABAP زبان برنامهنویسی خیلی مدرنی نیست. کاملاً شبیه Cobol است، اما زبان برنامهنویسی بسیار جالبی هم هست، چون خیلی گسترده است، دستورات مختلف زیادی دارد و خیلی چیزهای مختلف میتوانند خراب شوند.
Jonathan: باشه. پس کلی حل مسئله و کلی debug در آن هست. ماهیتش همین است؟
Lars: بله. معمولاً میگویم من این نوع کار را انجام میدهم چون واقعاً debug را دوست دارم و code قدیمی زیادی برای debug کردن وجود دارد، درست است؟ همین هفتهی پیش داشتم یک برنامهی قدیمی را درست میکردم که ۲۰ ساله بود. با خودم گفتم، باشه، عالی، عالی. و همیشه، وقتی به یک برنامهی قدیمی نگاه میکنید، حتی با اینکه سالهاست این کار را میکنم، چیزهای تازهی قدیمی برای یادگرفتن هست، بعضی ویژگیهای قدیمی که استفاده شدهاند و هنوز هر روز اجرا میشوند، درست است؟
Jonathan: باشه، پس ۱۵ سال پیش شروع کردید. همان شرکت، یا فقط شروع کردید به یادگیری ABAP با SAP و بعد به شرکتهای مختلف رفتهاید؟
Lars: همین حالا، الان شرکت خودم را دارم و کارهای بامزه انجام میدهم و خودم تعیین میکنم چه کار کنم. و همچنین برای شرکتهای مشاورهی مختلف مشاوره دادهام و بهعنوان کارآموز هم کار کردهام. پس الان فریلنس میکنم و کمی کار فریلنس میگیرم تا بتوانم دوباره اجارهام را بدهم. این مهم است.
Jonathan: بله. به نظر میرسد یک تم مشترک در زندگی شماست، یعنی پرداخت. پرداخت اجاره،
Lars: بله.
Jonathan: پیدا کردن راههایی برای پرداخت.
Lars: و با این حال وقت زیادی صرف پروژههای متنباز میکنم و از مسیر خارج میشوم سراغ چیزی چالشبرانگیز.
Jonathan: بله. پس آیا تیمی از افراد دارید که بهعنوان بخشی از کسبوکارتان با آنها کار کنید، یا به آن معنا نسبتاً تنهایید؟ روزمره یا در طول هفته با کارتان چه شکلی است؟
Lars: پس من تنهایم و شرکت خودم را دارم. وقتی از همکاری حرف میزنیم، با مشتری همکاری میکنم، درست است؟ و بعد در فضای متنباز هم دوستان خوب زیادی در جامعهی متنباز دارم که هر چند وقت یک بار در بعضی کارها کمک میکنند. و من هم هر چند وقت یک بار در بعضی کارها به آنها کمک میکنم، پس یک موقعیت برد-برد است.
Jonathan: بله. پس فکر میکنم شما بهطور کامل مسئول ساختن track ABAP در Exercism هستید، اگر اشتباه نکنم، یا سطح بالایی از مشارکت دارید. در ساختنش. کمی از آن برایمان بگویید.
Lars: بله. پس track ABAP توسط اعضای مختلف جامعه ساخته شده است. و اینها عمدتاً اعضای جامعه از پروژههای متنباز ABAP هستند. و البته ما کمی خاص هستیم، پس باید client خودمان را از صفر بسازیم، اما آن داستانی دیگر است برای روزی دیگر.
Jonathan: بله. بله. بله.
Lars: که داستان دیگری است. پس افراد مختلفی به Exercism مشارکت میکنند. با این حال، track ABAP کمی خاص است، درست است؟ چون زبان برنامهنویسیای است که شروع کردن در آن واقعاً سخت است، چون نمیتوانید فقط یک runtime JavaScript مثل Node یا یک runtime Python را دانلود کنید. در ABAP واقعاً نمیتوانید این کار را بهراحتی انجام دهید. آخرین راه برای انجام این کار یک کانتینر هدف با ۶۰ بود که تا آنجا که یادم میآید ۱۶ گیگابایت بود.
Jonathan: ۱۶
Lars: شما حداقل به ۳۲ گیگابایت حافظه نیاز دارید تا این را اجرا کنید. و افراد زیادی نیستند که واقعاً این زیرساخت را بهراحتی در دسترس داشته باشند. و همچنین اجرا روی این نوع زیرساخت با ex... نمیدانم. زیرساختی پشت این ecosystem، اما trackها همه کانتینرهای کوچک Docker است که بالا میآیند، code را اجرا میکنند، تمرین را بررسی میکنند و بعد دوباره خاموش میشوند.
Jonathan: بله.
Lars: و بالا آوردن یک کانتینر Docker با این اندازه بهراحتی میتواند ۱۰ دقیقه طول بکشد.
Jonathan: ؟ نه. نه. حتماً.
Lars: پس به روش دیگری نیاز داشتیم و خوشبختانه من روی کار تحلیل ایستای خودم کار میکردم. چند سال پیش شروع کردم و درختهای نگارش انتزاعی دارد. پس در واقع این code را میگیریم و به code JavaScript تبدیل میکنیم و بعد روی Node اجرا میکنیم و بازخورد را میدهیم. پس میگوییم که این زبان رسمیای نیست که ما بهعنوان ABAP پشتیبانی میکنیم و همچنین ABAP همانطور که چند بار اشاره کردم کمی خاص است، چون توصیف رسمی و خوبی از زبان ABAP بهعنوان چنین وجود ندارد. مثل زبانهای دیگر که طراحی شدهاند، نیست. فکر میکنم ABAP عمدتاً از دههی هفتاد یا هر وقت که شروع شد، به آنچه هست تکامل یافته است. پس ما همانطور که پیش میرویم آن را میسازیم.
Jonathan: پس این چه چالشهایی در کار روزمرهی شما ایجاد میکند؟ حدس میزنم چون باید هر روز بتوانید با چشمهای تازه به یک مسئله نگاه کنید و سعی کنید به ذهن کسی که آن را توسعه داده راه پیدا کنید، چون مستندات بسیار کمی دارید، آیا درست است که بگوییم مستندات خیلی کمی برای مراجعه دارید، پس شما
Lars: مستندات زیاد است، اما فقط متنی است و همیشه ۱۰۰٪ درست نیست.
Jonathan: باشه.
Lars: راه درست این است که code را امتحان کنید و ببینید واقعاً چه کار میکند، درست است؟ البته چیزهای زیادی در زبان هستند که درستاند. اما همچنین وقتی ما آدمها در یک سیستم SAP کار میکنیم و چیز میسازیم، معمولاً چند توسعهدهنده در یک سیستم هستیم و این یک سیستم بیش از ۲۰۰ میلیون خط code و بیش از ۸۰٬۰۰۰ جدول پایگاه داده دارد،
Jonathan: خدای من.
Lars: که خوب است. من یکی از آنها را دوست دارم. و بهخصوص اگر همه چیز را خیلی نزدیک به هم بسازید، تحلیل ایستای جالبی به دست میآید که میتواند چیزها را به هم گره بزند، در حالی که اگر معماریای به سبک Microsoft داشته باشید، همهچیز با جفتشدگی ضعیف به هم وصل است. هر دو مزایا و معایبی دارند.
Jonathan: پس شما تنظیمات monolith را ترجیح میدهید، آیا این حرف درستی است یا کمی... هر چه شما ترجیح دهید،
Lars: بله. من monolith را ترجیح میدهم، بله. باشه. پس با پیشینهی BASICتان، مدیریت monolithها را ترجیح میدهید. بله. عالی. این
Jonathan: code قدیمی. بله. همهی آن چیزهایی که سالهاست وجود دارند، همهی آن جور چیزها.
Lars: بله. من چیزهای قدیمی را دوست دارم. خیلی بامزه است، درست است؟ معمولاً میگویم وقتی... وقتی پیر شدم، میخواهم سراغ برنامهنویسی PL/1 یا APL بروم، یکی از آن زبانهای برنامهنویسی. نمیدانم، احتمالاً میتوانم آن را روی M هم انجام دهم، درست است؟ بعضی جاها
Jonathan: احتمالاً، در این مرحله همه چیز را زیر کاپوت داریم. ببینیم چه داریم. ABAP، آیا گفتید APL یا ABAP؟
Lars: APL. اوه، هیچ trackای برای APL وجود ندارد.
Jonathan: اوه، شاید یک فرصت باشد.
Lars: PL/1. هیچ trackای برای PL/1 وجود ندارد. باشه. باشه. آن دو track است که کسی در جامعه
Jonathan: اوه، شما همین حالا برایشان ثبتنام میکنید، آن
Lars: نه. پس روزمره چه شکلی است، مثلاً در track ABAP؟ پس track ABAP تقریبی از آنچه درست است است، و ما همیشه سعی میکنیم آن را یک قدم به ۱۰۰٪ نزدیکتر کنیم. پس در واقع افرادی داریم با راهحلهای درست که فقط روی Exercism کار نمیکنند
Jonathan: باشه.
Lars: بهخاطر این پشتهی عجیبی که راه انداختم. اما قدم به قدم، روز به روز، شروع به کار میکند و مدام unit testهای بیشتر و بیشتری به backend و به runner Exercism و همه چیز اضافه میکنیم. و امیدواریم روزی ۱۰۰٪ کامل شود، اما
Jonathan: کی میداند. کی میداند از آن نقطه چه پیش میآید. حالا در طول هفته معمولاً با چند مشتری کار میکنید؟ یکی دو تا یا سه تا، یا تا ۱۰ تا هم میرسد؟
Lars: فقط یکی دو تا.
Jonathan: باشه. و این مدتی است که یک چیز ادامهدار بوده.
Lars: بله. بله. سالهاست مشاوره انجام میدهم.
Jonathan: و عمدتاً در کپنهاگ متمرکز است یا در دوران پاندمی فرصت دورکاری از راه دور پیدا کردید؟ به چه شکل است، زیاد سفر میکنید یا
Lars: در روزهای جوانیام زیاد سفر کردم، اما الان معمولاً همینجا در خانه مینشینم و دورکاری میکنم.
Jonathan: باشه.
Lars: همین.
Jonathan: بله. قهوهسازتان را گرم نگه میدارید.
Lars: بله.
Jonathan: همه چیز را در جریان نگه میدارید. خب، حالا گفتید از سن خیلی کم برنامهنویسی میکردید و از سن نسبتاً کمی به آن علاقه داشتید. آیا در نقطهای برنامهنویسی برایتان معنایی پیدا کرد؟ لحظهای بود که حس کنید برایتان جا افتاد، یا چیزی بود که از کودکی بهطور طبیعی میفهمیدید؟ چطور توصیفش میکنید؟
Lars: اوه، نمیدانم. فکر میکنم همیشه برنامهنویسی را میفهمیدم، درست است؟
Jonathan: بله.
Lars: اما معمولاً، در روزهای جوانیام، همیشه برنامهنویسی رویهای بود. یادم میآید یک وقتی در دانشگاه، مقدمهای بر برنامهنویسی تابعی و برنامهنویسی منطقی بود. و اینها دو پارادایم کاملاً متفاوت برای برنامهنویسیاند. و تا آنجا که میدانم یک Prolog وجود دارد. بله، یک track Prolog هست. پس برای کسانی که برنامهنویسی منطقی را امتحان نکردهاند، توصیه میکنم کمی برنامهنویسی Prolog انجام دهند، و احتمالاً Standard ML هم آنجاست تا بفهمید واقعاً چه فکری میکردید، برنامهنویسی رویهای تازه، اما چیزهای دیگری هم هستند که میتوانید انجام دهید. پس بله، من هر روز چیز تازهای یاد میگیرم، پس برایم جا نیفتاده است.
Jonathan: هنوز با همه چیز کشتی میگیرید؟ نه، فقط جالب است چون بخش زیادی از تجربهی من این بوده که باید خودم را در چیزی مثل یک زبان غرق کنم. و بعد ناگهان مفاهیمی که غریبه بودند، و یکشبه چیزی تغییر میکند. و تقریباً اینطور است که اوه وای، این کاملاً منطقی است. و بعضی از بقیه که در پادکست با آنها صحبت کردم گفتند بله، تجربهی مشابهی دارند. و من گفتم چطور این کار را کردید؟ و گفتند اوه، یکی از دخترها گفت اوه، من فقط یک برنامه را مثل یک داستان تصور میکنم و توابع را شخصیتها در نظر میگیرم و از این جور چیزها. پس آن واقعاً جالب بود. اما شما چطور تصمیم گرفتید که ABAP همان چیزی است که میخواهید رویش تمرکز کنید؟ فقط این بود که اوه، این اجاره را میدهد، یا اینکه واقعاً این را دوست دارم، آن را به JavaScript یا هر چیز دیگری ترجیح میدهم و
Lars: ورود به برنامهنویسی همیشه بهطور تصادفی شروع میشود، درست است؟ یک سبک BASIC، و شروع تصادفی، و آن خودش را بهعنوان یک زبان برنامهنویسی بسیار چالشبرانگیز نشان داد، چون در دستورات مختلف خیلی بزرگ است؛ مثلاً Java و JavaScript واقعاً دستورات زیادی ندارند. یک کتابخانهی بزرگ دارند. در مقایسه با آن، در ABAP بخش زیادی از چیزهای کتابخانهای جزئی از خود زبان برنامهنویسی است، در حالی که در JavaScript، کتابخانهها را با همان نوع ساختار زبانی فراخوانی میکنید. بله.
Jonathan: باشه.
Lars: بله.
Jonathan: باشه. پس تقریباً بهطور تصادفی ABAP را کشف کردید و... حالا با نگاه به جلو، در ۱۰ سال آینده، نمیدانم حتی میخواهید آنقدر دور فکر کنید یا نه، اما ۵ تا ۱۰ سال آینده برای شما از نظر برنامهنویسی و کسبوکار چه شکلی است؟ حسی دارید که اوه، اینجاست که دوست دارم باشم، این کاری است که دوست دارم بکنم؟
Lars: آه، هیچوقت واقعاً نمیدانی، درست است؟ پس تا وقتی فکر کنم بامزهاند، ادامه میدهم، درست است؟ اگر دیگر بامزه نباشند، رهایشان میکنم و کار دیگری میکنم.
Jonathan: باشه، پس این
Lars: نقشه است، درست است؟ به نظر من باید بامزه باشد تا روزمره کار کند. احتمالاً ۱۰ سال دیگر هم ABAP روی میز خواهد بود، فکر میکنم. و کمی به همین برمیگردد. من در مورد زبانهای برنامهنویسی و فناوری خیلی سختگیرم. پس ABAP کار میکنم و JavaScript/TypeScript، و بعد سعی میکنم سراغ هیچ زبان دیگری نروم.
Jonathan: بله. باشه. اما اگر بگویم، باشه Lars، باید الان ABAP و JavaScript را رها کنی و باید یک زبان برنامهنویسی دیگر یاد بگیری. ایدهای دارید کدام را؟ بله، این کار را میکنم.
Lars: بله، پس دربارهی APL حرف زدیم،
Jonathan: باشه. بله.
Lars: زبانی خیلی بامزه، بسیار... احتمالاً از من پیرتر، نمیدانم، نزدیک به... APL و PL/1، فکر میکنم هر دو از ABAP پیرترند.
Jonathan: باشه. وای. پس چرا از روی کنجکاوی آن دو؟ چه چیزی در آنها شما را جذب میکند؟
Lars: APL را واقعاً امتحان نکردهام، اما چند شبیهساز روی اینترنت هست که میتوانید امتحان کنید. کلی حرف یونانی است و همه چیز ماتریسی است، ضرب... من نه، فقط خیلی عجیب به نظر میرسد، و بله، احمقانه. اما همین هم بامزهاش میکند، درست است؟ باید یک نوع چالش باشد. و PL/1 هم همینطور، ولی چیزی متفاوت. مطمئن نیستم.
Jonathan: چیزی مرموز و کمی
Lars: بله. واقعاً نه. من دوست دارم سراغ вещей کلاسیک و قدیمی بروم، نه همهی چیزهای مد روز جدید. پس احتمالاً میتوانم بگویم Rust، نه. احتمالاً روزی سراغ Rust میروم، اما آن واقعاً فقط به این خاطر نیست که لازم دارم. آن به این خاطر نیست که میخواهم.
Jonathan: بله. و متوجه میشوید که تعداد افرادی که از ABAP استفاده میکنند رو به کاهش است یا افزایش، یا اخیراً احیایی در علاقهمندی به این زبان بوده؟ دیدگاه شما دربارهی آن چیست؟
Lars: بله، خیلی سخت است و چون ABAP این سیستمهای بزرگ است که بهصورت داخلی در همکاریهای چندملیتی بزرگ اجرا میشوند، به دست آوردن اعداد عمومی واقعی و درست دربارهی اینکه اعداد واقعاً چقدرند خیلی سخت است. اما شایعه این است که سن توسعهدهندگانی که این را از حفظ میدانند در حال افزایش است و به خروج از بازار نزدیک و نزدیکتر میشود.
Jonathan: باشه.
Lars: مثل Cobol، درست است؟ پس زبانی قدیمی است، و جوانها آنقدر برایشان بامزه نیست، درست است؟ پس آدمهای پیری مثل من هستند، اما همین دلیل آن است که ما واقعاً track ABAP را ساختیم، درست است؟ میخواهیم جوانهای بیشتری به سمت زبان بیایند و Exercism بستر خوبی است تا کلی چیز مختلف را امتحان کنید. و شروعش خیلی راحت است. همگامسازی، کلیک، ورود. شروع به نوشتن code کنید. تمام.
Jonathan: بله. و متوجه شدهاید که افراد زیادی track را انجام میدهند؟ track ABAP؟
Lars: بله. الان نزدیک به ۵٬۰۰۰ دانشجو داریم.
Jonathan: وای، شگفتانگیز است. بله.
Lars: بله، پس اینجا در سپتامبر یک چالش code جامعه بود که توسط developer advocateهای SAP سازماندهی شد. برای اینکه افراد را به پلتفرم بیاوریم و چند تمرین را با چیزی که ما «جدولهای داخلی» مینامیم امتحان کنند. در زبانهای دیگر، اینها معمولاً آرایه هستند، اما ما جدولهای داخلی مینامیم، و جدولهای داخلی تودرتو، که معمولاً در زبانهای دیگر آرایهی دوبعدی نامیده میشود.
Jonathan: بله.
Lars: پس دانشجویان جدید زیادی در آن برنامه داشتیم. و همچنین بازخورد و issueهای زیادی روی GitHub گرفتیم. و این هم چیزی است که ما در دنیای ABAP واقعاً به آن عادت نداریم: همکاری میان سازمانهای مختلف. در واقع به اشتراک گذاشتن code روی GitHub در این جامعه خیلی معمول نیست.
Jonathan: آیا فقط به این خاطر است که افراد، این حوزه خیلی جزیرهای بوده، یعنی این شرکت کار خودش را میکند و آن شرکت کار خودش را، و بعد توسعهدهندهها واقعاً زیاد با هم حرف نمیزنند؟ آنها در بافت خاص خودشان هستند و اشتراکگذاری و همکاری کمتر است، یا دلیلش چیست؟
Lars: این به ماهیت یک سیستم SAP هم برمیگردد، چون یک سیستم استاندارد است. میتواند هر کاری برایتان انجام دهد، پس معمولاً وقتی به مشتریها کمک میکنم به این خاطر است که مشتری به چیزی خاص نیاز دارد.
Jonathan: بله.
Lars: و آن چیز خاص بر اساس چیزی است که کسبوکارشان را یگانه میکند. پس احتمالاً چیزی است که مشتریهای دیگر نمیتوانند از آن استفاده کنند و استفاده هم نخواهند کرد، چون آن مشتری به شکلی متفاوت از مشتری دیگر یگانه است. اما یک جامعهی متنباز در حال شکلگیری است که code را به اشتراک میگذارد، اما معمولاً در سطح ابزارهاست. ابزارهایی مثل logging و مدیریت خطا یا چیزی شبیه آن. اما به آنجا میرسد. فقط در دنیای SAP هر چیزی پنج سال به بالا طول میکشد.
Jonathan: بله. فقط برای اینکه همه چیز شروع به گرفتن آن کشش کند. این یکی از چیزهایی است که از هر کسی که به برنامه میآید میپرسیم، و من، شاید سندی را که برایتان فرستادم دیده باشید، اما ما معمولاً از افراد میپرسیم آن یک نظر یا دیدگاهی که در دنیای فناوری روی آن میمانید و کوتاه نمیآیید چیست؟ یا معمولاً آن یک تپهای که در دنیای فناوری حاضرید رویش بمیرید چیست، تا مطمئن شوید آن چیز تا ابد میماند، و میتواند به همان اندازهی... احمقانه باشد که من همیشه منطقم را بعد از CSS مینویسم اگر در frontend باشید. یا میتواند واقعاً بیاهمیت باشد، یا میتواند چیزی مثل من هرگز از GitHub استفاده نمیکنم باشد، مثلاً. میتواند، اما فقط باید بتوانید استدلال کنید یا نقطهنظرتان را ارائه دهید. سنجیده. اما آن یک چیز چیست، آن یک نظری که شما...
Lars: یک، یک. یک نظر؟
Jonathan: باشه. میتوانم دو تا بدهم. میتوانم دو تا بدهم. بله. سه تا. باشه. سه تا. میتوانید سه نظر داشته باشید، چون میدانم آدمهای فنی اصلاً نظر نمیدهند، معمولاً.
Lars: بله. فکر میکنم اگر آدمها مرا توصیف کنند، بعضی وقتها نظرات خیلی قویای دارم، و بله. پس یکی از نظرات اصلی من این است که نه بگو، این ممکن نیست. کار دیگری بکن که بهتر با راهحل و فناوری جور باشد. پس به استفاده از ابزارهایی مثل Jenkins نه بگو. به Jenkins نه بگو، یکی از ابزارهایی است که دوست دارم به آن اشاره کنم که هیچکس نباید استفاده کند، درست است؟
Jonathan: چرا؟ چرا؟ دلیلش چیست؟
Lars: نگه داشتن pipelineها نزدیک به code خیلی راحتتر است. پس اگر... من فقط آن را منسوخ میدانم.
Jonathan: باشه. پس مثل یک سطح از انتزاع است که اگر بدانید چه میکنید، لازم نیست اضافه شود.
Lars: بله. و ابزارهای دیگری هم هستند که کارها را بهتر انجام میدهند. ابزار دیگری که دوست دارم رد کنم Eclipse است. در دنیای Java، اگر پنج، ده سال به عقب نگاه کنید، Eclipse معمولاً برای ساختن code Java استفاده میشده است. از دید من، به نقطهای رسیده که Eclipse حتی برای ساختن code Java هم استفاده نمیشود. معمولاً برخی برنامههای بزرگ سازمانی و چیزهایی است که در Eclipse استفاده میشوند و ساختن Eclipse، که در ابتدا واقعاً برایش در نظر گرفته نشده بود. راههای زیادی برای انجام این کار نیست و ابزارهای زیادی برای انتخاب وجود دارد. پس Eclipse غروب کرده است.
Jonathan: باشه. بله، دوستش دارم. و یک نظر دیگر هم میدهم. نظر دیگر، سومین نظر چیست،
Lars: فضای خالی. یعنی فضای خالی. یکی از پروژههای جانبی من تحلیل ایستا برای ABAP است. و در واقع در ABAP، دستورات مختلف زیادی داریم، راههای مختلف زیادی برای تورفتگی، و ABAP case، حروف کوچک، و Hungarian notation، همه چیز. بله. داشتن فاصلههای دوتایی جایی در یک متن، چیزی است که واقعاً مرا عصبی میکند.
Jonathan: آیا فقط به این خاطر است که همه چیز را به هم میریزد و فقط کابوس است
Lars: فقط از مسیر خارجتان میکند، مثل خواندن یک متن یا یک تکه code. اوه، اینجا بین اینها دو فاصله هست، بگذار ببینم، غافلگیرم میکند.
Jonathan: باشه، باشه. پس بگذارید ببینم، Jenkins. pipelineهایتان را نزدیک به code نگه دارید. فهمیدم. Eclipse. لازم نیست. و فضای خالی دوتایی. اینها سه نظری است که به شما دادم که شدتشان متفاوت است، به نظر میرسد. پس نه، این واقعاً عالی است. نه، عالی است. و بله، فکر میکنم توانستید بهخوبی روی موضعتان بمانید.
Lars: و همچنین وقتی از یکپارچهسازی پیوسته حرف میزنیم، یکپارچهسازی پیوسته را تبدیل به انتظار پیوسته نکنید.
Jonathan: باشه، پس code را push میکنید، بعد آنجا مینشیند و منتظر میماند تا... آیا منظورتان این است؟
Lars: بازخورد سریع به توسعهدهنده میرسد، بهجای اینکه یک ساعت، دو ساعت منتظر هر بازخوردی بمانند.
Jonathan: باشه. پس آیا به این خاطر است که بهطور سیستمیک و نظاممند یک fail-safe است؟ آیا به این خاطر آنجاست؟ فقط برای مکث است تا چیزها بررسی شوند، یا چرا
Lars: فقط معماری بد.
Jonathan: بله. باشه. باشه. جالب است. باشه، پس سؤال آخر امروز. امیدوارم تا حالا لذت برده باشید، اما میخواستم این را از شما بپرسم. برای جامعهی Exercism این هفته چه توصیههایی دارید؟ اگر میتوانستید یک چیز را به جامعه توصیه کنید، چه میشد؟ هر چیزی میتواند باشد. سوشی بخورید. بروید در رودخانه بپرید، هر چه که
Lars: البته track را امتحان کنید. این احتمالاً
Jonathan: آن را مجانی به شما میدهم. آن مجانی است. آن مجانی است. باشه.
Lars: اما البته همانطور که چند بار اشاره شد، یادتان باشد که خوش بگذرد. باید بامزه باشد. پس بعضی وقتها حتی با اینکه ایدههای عجیبی هست، اگر بامزه است، امتحانش کنید. ببینید چه میشود. این معمولاً همان چیزی است که دربارهی ساختن پروژههای متنباز هم میگویم. فقط بپرید داخلش، ببینید بامزه است یا نه. امتحان کنید. اگر جواب نداد، اشکالی ندارد. بعد بپرید سراغ حزب بعدی یا پروژهی متنباز بعدی یا زبان بعدی.
Jonathan: بله.
Lars: چون چیزهای زیادی برای انجام دادن در دنیای فناوری و بیرون از دنیای فناوری هست که اگر همیشه حوصلهتان سر برود، واقعاً ارزشش را ندارد.
Jonathan: بله، نه، مطمئناً. نه، این توصیهی خوبی است. پس هر کسی آن بیرون، در فضای فناوری کمی خوش بگذرانید. در آخر، خیلی ممنون از وقتی که امروز گذاشتید. واقعاً قدردانی میکنم. فقط بمانید تا وقتی که، وقتی ضبط را متوقف کردم، در آخر کمی گپ بزنیم. اما فقط میخواستم یک تشکر بزرگ بگویم. و هر کسی آن بیرون که علاقهمند است، برود track ABAP را ببیند. بروید چند تمرین اجرا کنید. بروید ببینید چطور از عهدهاش برمیآیید. و اگر میخواهید چیزی یاد بگیرید که مدتی است وجود دارد و دارد دوباره رشد میکند، از نظر اهمیت و تأثیر، میتوانید بگویید، چون زیربنای بسیاری از پلتفرمهای چندملیتی اصلی است. افرادی که میشناسید، شرکتهایی که میشناسید. اگر میخواهید مسیر درونی را یاد بگیرید، پس ABAP قطعاً ارزش دیدن دارد. Lars، وقتی به آنجا رسیدیم، همهی لینکهای برنامه را که ممکن است داشته باشید در توضیحات پایین میگذاریم. اما در این فاصله، خیلی ممنون و یک لحظه دیگر میبینمتان. اما بله، باز هم متشکرم. قدردانی میکنم.
گوش دهید، یاد بگیرید و از اعضای انجمن ما الهام بگیرید.