Workflow Tips
إليك بعض النصائح للعمل مع جوليا بكفاءة.
REPL-based workflow
كما تم توضيحه بالفعل في The Julia REPL، يوفر REPL الخاص بـ Julia وظائف غنية تسهل سير العمل التفاعلي بكفاءة. إليك بعض النصائح التي قد تعزز تجربتك في سطر الأوامر.
A basic editor/REPL workflow
تتضمن أبسط سير العمل في جوليا استخدام محرر نصوص بالتزامن مع سطر الأوامر julia
.
أنشئ ملفًا، لنقل Tmp.jl
، وضمنه
module Tmp
say_hello() = println("Hello!")
# Your other definitions here
end # module
using .Tmp
ثم، في نفس الدليل، ابدأ REPL الخاص بـ Julia (باستخدام الأمر julia
). قم بتشغيل الملف الجديد كما يلي:
julia> include("Tmp.jl")
julia> Tmp.say_hello()
Hello!
استكشف الأفكار في REPL. احفظ الأفكار الجيدة في Tmp.jl
. لإعادة تحميل الملف بعد تغييره، فقط قم بـ include
مرة أخرى.
المفتاح في ما سبق هو أن الشيفرة الخاصة بك محاطة في وحدة. هذا يسمح لك بتحرير تعريفات struct
وإزالة الطرق، دون الحاجة إلى إعادة تشغيل جوليا.
(تفسير: لا يمكن تعديل struct
s بعد التعريف، ولا يمكن حذف الطرق. لكن يمكنك إعادة كتابة تعريف وحدة، وهو ما نفعله عندما نعيد include("Tmp.jl")
).
بالإضافة إلى ذلك، فإن تغليف الشيفرة في وحدة يحميها من التأثر بالحالة السابقة في REPL، مما يحميك من الأخطاء التي يصعب اكتشافها.
Browser-based workflow
هناك بعض الطرق للتفاعل مع جوليا في المتصفح:
Revise-based workflows
سواء كنت في REPL أو في IJulia، يمكنك عادةً تحسين تجربة التطوير الخاصة بك باستخدام Revise. من الشائع تكوين Revise ليبدأ كلما تم بدء جوليا، وفقًا للتعليمات في Revise documentation. بمجرد التكوين، سيتتبع Revise التغييرات في الملفات في أي وحدات محملة، وأي ملفات تم تحميلها في REPL باستخدام includet
(ولكن ليس مع include
العادية)؛ يمكنك بعد ذلك تعديل الملفات وستدخل التغييرات حيز التنفيذ دون إعادة تشغيل جلسة جوليا الخاصة بك. تدفق العمل القياسي مشابه لتدفق العمل القائم على REPL أعلاه، مع التعديلات التالية:
ضع كودك في وحدة ما على مسار التحميل الخاص بك. هناك عدة خيارات لتحقيق ذلك، من بينها خياران موصى بهما:
للمشاريع طويلة الأجل، استخدم PkgTemplates:
using PkgTemplates t = Template() t("MyPkg")
سيؤدي هذا إلى إنشاء حزمة فارغة،
"MyPkg"
، في دليل.julia/dev
الخاص بك. لاحظ أن PkgTemplates يتيح لك التحكم في العديد من الخيارات المختلفة من خلال مُنشئTemplate
الخاص به.في الخطوة 2 أدناه، قم بتحرير
MyPkg/src/MyPkg.jl
لتغيير كود المصدر، وMyPkg/test/runtests.jl
للاختبارات.بالنسبة لمشاريع "التخلص منها"، يمكنك تجنب أي حاجة للتنظيف من خلال القيام بعملك في دليلك المؤقت (على سبيل المثال،
/tmp
).انتقل إلى دليلك المؤقت وابدأ تشغيل جوليا، ثم قم بما يلي:
pkg> generate MyPkg # type ] to enter pkg mode julia> push!(LOAD_PATH, pwd()) # hit backspace to exit pkg mode
إذا قمت بإعادة تشغيل جلسة Julia الخاصة بك، فسيتعين عليك إعادة إصدار ذلك الأمر الذي يعدل
LOAD_PATH
.في الخطوة 2 أدناه، قم بتحرير
MyPkg/src/MyPkg.jl
لتغيير كود المصدر، وأنشئ أي ملف اختبار تختاره.
قم بتطوير حزمةك
قبل تحميل أي كود، تأكد من أنك تقوم بتشغيل Revise: قل
using Revise
أو اتبع الوثائق الخاصة به لتكوينه للتشغيل تلقائيًا.ثم انتقل إلى الدليل الذي يحتوي على ملف الاختبار الخاص بك (المفترض هنا أن يكون
"runtests.jl"
) وقم بما يلي:```julia-repl julia> using MyPkg
julia> include("runtests.jl") ```
يمكنك تعديل الكود في MyPkg بشكل تكراري في محرر النصوص الخاص بك وإعادة تشغيل الاختبارات باستخدام
include("runtests.jl")
. بشكل عام، لا يجب عليك إعادة تشغيل جلسة Julia الخاصة بك لرؤية التغييرات تأخذ مفعولها (مع مراعاة بعض limitations).