بیاموزید چطور Pharo را بهصورت محلی نصب کنید تا تمرینهای Exercism را روی دستگاه خودتان حل کنید
سادهترین راه نصب Pharo استفاده از یک دانلود zero conf از خط فرمان ترمینال است.
توجه: اگر قصد دارید نصب موجود را ارتقا دهید، دستورالعملهای ارتقا را ببینید.
کاربران ویندوز که پوستهی سازگار با UNIX را نصب نکردهاند، باید به دستورالعملهای نصب ویندوز (در ادامه) بروند.
کاربران پیشرفتهتر لینوکس هم ممکن است بخواهند به نصب پیشرفتهی لینوکس مراجعه کنند.
برای لینوکس/OSX (به شرط اینکه Exercism را نصب کرده باشید و به ترک Pharo پیوسته باشید)، به پوشهی /Exercism/pharo-smalltalk خود بروید و این را تایپ کنید:
curl https://get.pharo.org/64/ | bash
و Pharo را همراه با ابزارهای Exercism اجرا کنید؛ برای این کار «اسکریپت بارگذاری» زیر را جایگذاری کنید:
./pharo-ui Pharo.image eval "
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
"
اگر هنگام بارگذاری ابزارها با مشکل TIMEOUT روبهرو شدید، باید از Pharo خارج شوید و با تایپ دستور زیر کش git را پاک کنید:
rm -rf pharo-local/iceberg/
و سپس مثال ./pharo-ui ... بالا را تکرار کنید.
اگر همچنان مشکل داشتید، لطفاً به کانال Discord مربوط به Pharo که در صفحهی جامعهی Pharo توضیح داده شده سر بزنید.
اگر همهچیز درست کار کند، باید نوارهای پیشرفت بارگذاری را ببینید که روی صفحه چشمک میزنند و سپس پنجرهی System Browser باز میشود.
نکته: وقتی میخواهید از Pharo خارج شوید، تغییرات خود را ذخیره کنید (منوی Pharo را باز کنید و گزینهی «Save and Quit» را انتخاب کنید). حالا میتوانید Pharo را با Exercism از پیش بارگذاریشده اجرا کنید، فقط با تایپ:
./pharo-ui Pharo.image
ما هنوز در حال بررسی بهترین پیشنیازهای ابزار خط فرمان برای ویندوز هستیم، اما میتوانید Pharo را بهصورت گرافیکی هم با Windows Pharo Launcher نصب کنید (ابزاری کاربردی برای مدیریت چند ایمیج Pharo). این لانچر برای OSX و لینوکس هم در دسترس است، اگر کار با رابط گرافیکی را دوست دارید.
فایل .msi دانلودشده را اجرا کنید تا Pharo Launcher نصب شود.
Pharo Launcher را اجرا کنید.
در گوشهی بالا سمت چپ روی «New» کلیک کنید.
در پنجره، از دستهبندیهای قالب گزینهی «Official distributions» را انتخاب کنید.
برای تمرینهای Exercism، از فهرست قالبهای ایمیج Pharo آخرین نسخهی پایدار را انتخاب کنید (در حال حاضر «Pharo 10.0 64-bit (stable)» بهعنوان توصیهشده).
روی یک قالب ایمیج کلیک کنید تا انتخاب شود، یک اسم به آن بدهید و سپس دکمهی ساخت ایمیج را در پایین (به شکل چرخدندهی نارنجی) کلیک کنید.

پس از دانلود قالب، در سمت راست در جدول «Existing Images» ظاهر میشود. روی آن کلیک کنید و سپس دکمهی اجرا را در بالا (یک فلش play سبزرنگ) کلیک کنید.

وقتی ایمیج Pharo اجرا شد، با انتخاب منوی Browse و سپس Playground یک Playground باز کنید، یا از
ctrl + o + w استفاده کنید.

در پایان، قطعهکد زیر را کپی کنید و در Playground جایگذاری کنید:
Iceberg remoteTypeSelector: #httpsUrl.
Metacello new
baseline: 'Exercism';
repository: 'github://exercism/pharo-smalltalk:main/releases/latest';
load.
#ExercismManager asClass welcome.
سپس کد جایگذاریشده را با انتخاب کل آن، کلیک راست و انتخاب Do it از منو اجرا کنید (یا از ctrl + d استفاده کنید).
اگر همهچیز درست کار کند، باید نوارهای پیشرفت بارگذاری را ببینید که روی صفحه چشمک میزنند و سپس پنجرهی System Browser باز میشود.
وقتی Pharo را اجرا میکنید، یک پروژه به اسم Welcome میبینید، در یک System Browser (نکته: اگر این پنجره را گم کردید، میتوانید از منوی «Tools|System Browser» پنجرهی جدیدی باز کنید).

پنل بالا و سمت چپ System Browser پکیجهای محیط شما را نشان میدهد و خواهید دید که اسکریپت نصب از قبل پکیجی به اسم Exercism را پیکربندی کرده که شامل یک برچسب زیرپروژه به اسم Welcome است. پنل دوم کلاسها را نشان میدهد که آن هم کلاسی به اسم Welcome دارد. زیر پنل کلاسها ۴ دکمهی رادیویی هست: «Flat» (کلاسهای داخل پکیج را نشان میدهد)، «Hier.» (سلسلهمراتب کلاسها را نشان میدهد)، «Inst. side» (متدهای نمونه را نشان میدهد) و «Class side» (متدها/سازندههای کلاس را نشان میدهد).
اگر روی زبانهی «Comment» کلیک کنید، آخرین دستورالعملهای استفاده از Pharo Exercism را میبینید. کامنتها را بخوانید و اجرای اولین تست خود را امتحان کنید.
در سایر زبانهای فایلمحور، معمولاً در این مرحله به ترمینال میروید و با CLI Exercism تمرین بعدی را دریافت میکنید. Pharo هم میتواند به شکلی مشابه با فایلها کار کند، اما این محیط در واقع برای کار با اشیای زنده تنظیم شده است. جالب اینکه کلاسها، متدها و کد منبع هم مثل هر چیز دیگری در Pharo اشیا هستند. در طول این ترک بیشتر دربارهی این موضوع یاد میگیرید.
برای Exercism، افزونهای را گنجاندهایم که به شما امکان میدهد تمرینهای Pharo را از داخل IDE دریافت و ارسال کنید.
تنها کاری که باید بکنید این است که روی پکیج یک تمرین (در این مورد، پکیج Welcome در پنل بالا سمت چپ) کلیک راست کنید و گزینهی منوی Exercism | Fetch Exercise را انتخاب کنید. این کار از شما اسم تمرین را میپرسد (مثلاً hello-world) و پس از وارد کردن آن، تمرین را بهطور خودکار برای شما دریافت میکند.
اسم تمرینها را میتوانید در توضیحات هر تمرین در صفحهی ترک Pharo خود پیدا کنید (در سمت راست). یک دستورالعمل Download با یک رشتهی CLI هست که کلید هر تمرین را در خود دارد. همچنین میتوانید از دکمهی کپی کنار دستورالعملهای CLI استفاده کنید و کل رشته را در اعلان دریافت جایگذاری کنید (ما کلید را بهطور خودکار استخراج میکنیم).
وقتی تمرین معتبری وارد کنید، افزونه کد مربوطه را دریافت و در System Browser نمایش میدهد تا آماده باشید با تستها کدنویسی کنید.
وقتی همهی تستهایتان پاس شدند، میتوانید راهحل خود را با همان منوی زمینهی پکیج تمرین ارسال کنید (روی برچسب پکیج کلیک راست کنید و Exercism | Submit Exercise... را انتخاب کنید)

در پایان از منوی Exercism | View Track Progress استفاده کنید تا به وبسایت Exercism بروید و ببینید چه تمرینهای دیگری برای شما باز شدهاند و همچنین پرسشهای خود دربارهی ارسالتان را برای خواندن منتورها ثبت کنید.
آیا میدانستید: وقتی Pharo را اجرا میکنید، در واقع یک عکس لحظهای از ایمیج اجرا را بازیابی میکنید، مشابه ایمیج یک سیستمعامل VMWare. این مفهوم قدرتمندی است که به شما اجازه میدهد کار را در میانهی عملیات متوقف کنید، حتی مثلاً وقتی در حال دیباگ کردن چیزی هستید. دفعهی بعد که Pharo را دوباره اجرا کنید، میتوانید پیمایش کد را در دیباگر بازیابیشده ادامه دهید، یا مثلاً یک مرحلهی ریفکتورینگ را ادامه دهید.
اگر روزی به دلیل یک مسئلهی امنیتی لازم شد توکن CLI خود را بازنشانی کنید، باید به صفحهی تنظیمات Exercism خود بروید و از دکمهی بازنشانی توکن استفاده کنید. پس از این کار، باید توکن قدیمی خود را در Pharo Exercism با اجرای کد زیر در یک Playground پاک کنید:
ExercismHttpClient
reset;
promptForToken.
هر چند وقت یکبار ممکن است لازم باشد کتابخانههای ایمیج Pharo Exercism خود را بهروزرسانی کنید. لطفاً این دستورالعملها را دنبال کنید