Dev Perfects – Telegram
Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
خب خب خب پکیج fmt در go

این پکیج (fmt) یکی از پراستفاده‌ترین و مهم‌ترین ابزارهای Go هست که برای کار با ورودی و خروجی‌ها استفاده میشه. بیاین ببینیم چطور کار می‌کنه.

توابع پرکاربرد fmt 🛠️
پکیج fmt یه سری توابع داره که هر کدوم برای هدف خاصی طراحی شدن. مهم‌ترینشون رو اینجا لیست کردم:

1⃣ Print و Println
برای چاپ اطلاعات روی کنسول:
ـPrint: متن‌ها رو بدون فاصله چاپ می‌کنه.

ـPrintln: بین متن‌ها فاصله می‌ذاره و یه خط جدید اضافه می‌کنه.


fmt.Print("Hello") fmt.Print("World") fmt.Println("Hello") fmt.Println("World") 

Output:
HelloWorld 
Hello
World

2⃣ Printf
برای چاپ با فرمت خاص:
name := "Ali"
age := 20 fmt.Printf(
"Name: %s,
Age: %d\n",
name, age
)

Output:
Name: Ali, Age: 20 

3⃣ Sprintf
مثل Printf عمل می‌کنه، ولی خروجی رو به جای چاپ، به صورت رشته برمی‌گردونه:

name := "Ali"
greeting := fmt.Sprintf(
"Hello,
%s!",
name
)
fmt.Println(greeting)

Output:
Hello, Ali! 

4⃣ Fprintf
اطلاعات رو به جای کنسول، به فایل یا هر io.Writer دیگه‌ای می‌فرسته:
file, _ := os.Create("output.txt")  
fmt.Fprintf(file, "Hello, %s!", "File")

5⃣ Scan و Scanf
برای گرفتن ورودی از کاربر:
ـScan: ورودی ساده رو می‌خونه.

ـScanf: ورودی رو با فرمت مشخص می‌خونه.


var name string  
fmt.Println("Enter your name:")
fmt.Scanln(&name)
fmt.Println("Your name is:", name)

var age int
fmt.Println("Enter your age:")
fmt.Scanf("%d", &age)
fmt.Println("Your age is:", age)

Output (Example input: "Ali", "20"):
Enter your name:
Your name is: Ali
Enter your age:
Your age is: 20

پشت پرده fmt: چطور کار می‌کنه؟ 🧐
حالا که با توابع آشنا شدی، بد نیست بدونی fmt پشت صحنه چطور داده‌ها رو مدیریت می‌کنه.

1⃣ استفاده از Interfaces
ـfmt از دو اینترفیس مهم استفاده می‌کنه:

ـStringer:
اگه struct این اینترفیس رو پیاده‌سازی کرده باشه، متد String() برای چاپ خروجی فراخوانی میشه.
ـError:
برای ارورها، متد Error() فراخوانی میشه.


مثال:
type Person struct {  
Name string
Age int
}

func (p Person) String() string {
return fmt.Sprintf("Name: %s, Age: %d", p.Name, p.Age)
}

func main() {
person := Person{"Ali", 20}
fmt.Println(person)
}

Output:
Name: Ali, Age: 20

2⃣ـ Reflection
پکیج fmt از پکیج reflect استفاده می‌کنه تا نوع داده‌ها رو در زمان اجرا بررسی کنه. یعنی وقتی %v یا سایر placeholders رو استفاده می‌کنی، fmt می‌تونه بفهمه چه نوع داده‌ای داری و چطور باید چاپش کنه.
x := 42  
fmt.Printf("Type: %T, Value: %v\n", x, x)

Output:
Type: int, Value: 42 

فرمت‌دهی داده‌ها با fmt 🎨
پکیج fmt قابلیت‌های فرمت‌دهی خیلی خوبی داره که بیشتر اوقات به کار میان:
اعداد
%d: عدد صحیح

%f: عدد اعشاری

%.2f: عدد اعشاری با 2 رقم اعشار

%b: نمایش در مبنای 2

%x: نمایش در مبنای 16


num := 42  
pi := 3.14159
fmt.Printf("Decimal: %d, Binary: %b, Hex: %x, Pi: %.2f\n", num, num, num, pi)

Output:
Decimal: 42, Binary: 101010, Hex: 2a, Pi: 3.14

رشته‌ها
%s: نمایش رشته

%q: رشته با کوتیشن

%+v: struct با نام فیلدها

%v: مقدار خام


type Person struct {  
Name string
Age int
}
p := Person{"Ali", 20}
fmt.Printf("Raw: %v, With Fields: %+v\n", p, p)

Output:
Raw: {Ali 20}, With Fields: {Name:Ali Age:20}

منطق (Boolean)
%t: مقدار True یا False رو چاپ می‌کنه.


isGoAwesome := true  
fmt.Printf("Is Go awesome? %t\n", isGoAwesome)

Output:
Is Go awesome? true 

جمع‌بندی
پکیج fmt یکی از ابزارهای قدرتمند Go هست که با توابع ساده و قابلیت‌های فرمت‌دهی پیشرفته، کار برنامه‌نویسا رو راحت کرده.

#programming #go



🔆 CHANNEL | GROUP
Forwarded from DevAcademy
سلام دوستان👋

یکی از همکاران که اخیرا تو فلو مصاحبه برای پوزیشن Front End بود ،یه سری سوالات پرتکرار مصاحبه هاشو معرفی کرد که سعی میکنم پست خوب در موردشون دیدم تو چنل بذارم یا در موردشون پست درست کنم.

یکی از اون سوالات پرتکرار مربوط به متودهای ()bind(),apply(),call بود که من یه پست تو لینکدین در موردشون گذاشتم

اگه دوست داشتید میتونید اینجا بخونید

https://www.linkedin.com/posts/masoud-varzi_javanoscript-webdevelopment-js-activity-7280271128042852352-WxIN?utm_source=share&utm_medium=member_ios


💻@DevAcaademy
💬
@DevAcademyGroup
Forwarded from a pessimistic researcher (Kc)
"در ابتدا تقارن وجود داشت"
از کتاب جزء و کل به نوشته‌ی آقای Werner Heisenberg.
—————————————

چند روز پیش به یک کتاب Open Source برخورد کردم به نام SYMMETRY که چند نویسنده داره و من یکیشون رو یعنی Ulrik Buchholtz رو می‌شناختم. از اونجایی که ایشون Type theory کار هستند، حس کردم کتاب باید حرف تازه‌ای برای گفتن داشته باشه. وقتی که راجع به باقی نویسنده‌های کتاب سرچ کردم فهمیدم که کتاب رو تعدادی TCS کار نوشتن و همونطور که میشه از بکگراند حضرات حدس زد، کتاب بر پایه‌ی univalent mathematics پیش میره و سعی در تعریف یک Foundation برای پاسخ به سوالات مرتبط با Symmetry داره. کتاب با type theory شروع میشه، از group theory عبور می‌کنه، دستی به Automata Theory میده و به تئوری گالوا میرسه. شاید بد نباشه که کمی شفاف کنم که چرا چنین مبحثی برای شخص خودم اهمیت داره.

بر خلاف خیلی از دوستانی که در ماهای گذشته به جمع ما پیوستن، من رشته‌ام ریاضی نیست. اما خب توی Theoretical of computer science به خطوط Track B کانسپت Symmetry و مشتقاتش خیلی به دادمون میرسه. مثلا ما یک دنیایی داریم توی این track به اسم Abstract Interpretation که PL ای‌ها و Compiler ای‌ها ازش خیلی استفاده می‌کنند. به لطف روپاک و رفقاش، verification ای ها هم از ۲۰۰۰ به اینور ازش استفاده می‌کنند. کانسپت Abstract Interpretation برای اولین بار توسط آقایان Patrick Cousot و Radhia Cousot در دهه ۷۰ میلادی معرفی شد. Semantics فرمالی که این بزرگرواران در دو مقاله‌ی معروف و فوق العاده پیچیده‌شون ارائه دادند بر پایه‌ی Lattice Theory و Galois connections بود. یکی دیگه از کاربردای Symmetry توی Model Checking هستش. خیلی از سیستم‌های Concurrent ای که ما میخوایم verify شون کنیم، تشکیل شده از process هایی هستند که رفتار identical دارند و با تعریف یک symmetry reduction ای که sound باشه میشه فضای حالت سیستم رو به شدت کاهش داد. یک نسخه‌ی Generalized شده‌ی Symmetry به ما در verify کردن parameterized concurrent system ها کمک می‌کنه بدین صورت که اگر اثبات کنیم سیستم به‌ازای تعداد مشخصی process وریفای میشه، میشه نتیجه گرفت که به ازای بینهایت process هم وریفای میشه و به ما در verify کردن infinite state systems ها کمک میکنه.

اینها رو گفتم تا بیشتر دید بدم بهتون ولی خودم دنبال چیز دیگه‌ای از Symmetry هستم. یکی از پروژه‌هایی که روی JMC نعریف کردیم، verify کردن distributed system هایی هستش که با پترن Executors/Futures کار می‌کنند. بدین صورت که شما یک Executor دارید که تشکیل شده از یک Thread Pool و یک Runnable Queue هستش و یک سری Task رو به این Executor سابمیت می‌کنید. وقتی که ما اومدیم این پترن رو به شکل فرمال مدل کردیم و بهش یک semantics مبتنی بر dynamic partial order reduction دادیم، دریافتیم که فضای حالت به شکل سوپرنمایی بزرگ میشه وریفای کردنش خیلی راحت نیست. الان دنبال این هستم که بتونم با توسعه و افزودن یک symmetry reduction به این partial order reduction یک تکنیک sound داشته باشم برای کاهش دادن فضای حالت تا بتونیم یک subclass از این مسائل رو به شکل موثری verify کنیم.

از این جهت این کتاب برام جذاب اومد و گفتم که به شما هم معرفیش کنم. نکته‌ای که هست اینه که این کتاب در درست نگارشه و برخی از فصل‌هاش خصوصا فصول انتهاییش کامل نیست. ولی آخرین ورژن Draft این کتاب رو میتونید از طریق این لینک دسترسی داشته باشید. لینک ریپوی این کتاب هم اینجاست.

عنوان پست، جمله‌ای هست که روی جلد کتاب نوشته شده.
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
🔥میخواهید برای مصاحبه DevOps آماده بشید ؟
بیش از 140 سوال مصاحبه DevOps در مجموعه ای devopscommunity

💠کلمه DevOps از دو کلمه‌ی Development (توسعه)
منظور از Development، تیم توسعه است، یعنی تمام کسانی که در ساخت محصول، خطایابی، تست و در نهایت تکمیل محصول نقش دارند

💠و Operation (عملیات) تشکیل شده
منظور از Operation هم IT Operation یا تیم عملیاتی است. افرادی که در حالت کلی، نگهداری تجهیزات سخت افزاری، نرم افزاری، و محیط‌های عملیاتی شرکت را به عهده دارند

🗓 دواپس بین تیم توسعه‌ی محصول و تیم عملیاتی شرکت، همکاری و تعامل ایجاد می‌کنه

🗓 تخصص DevOps یک زبان یا یک تکنولوژی خاص نیست بلکه ترکیبی از فلسفه، فرهنگ، شیوه‌ها و ابزارهایی است که کمک می‌کنند محصولات یا خدمات ما سریع‌تر به دست مشتریان برسد.
https://github.com/rohitg00/devops-interview-questions
https://www.devopscommunity.in/

❤️ ممنون از حمایت هاتون 💐🌺
#DevOps
Forwarded from Python Hints
۲ مورد ایرادی که اشاره کردند دوستان رفع شد.
Forwarded from laravel-news
💡#تیلور میگه :

ابتدا "قسمت‌های جدید و متفاوت نرم‌افزار" رو بسازید. از صفحه لاگین یا چیزهایی که قبلاً بارها ساختید شروع نکنید. با شروع از چیزهایی که تازه و متفاوت هستند، خیلی سریع‌تر عدم قطعیت رو از بین می‌برید. همچنین، احتمال شکست در این قسمت‌ها بیشتره، که اتفاقاً چیز خوبیه! اگه قراره با مانع بزرگی روبرو بشید، بهتره خیلی زود اینو بفهمید، قبل از اینکه زمان زیادی رو صرف بخش‌های تکراری و معمولی کرده باشید.
Forwarded from Linuxor ?
خلاصه امروز توییتر کامیونیتی برنامه نویسی و کامپیوتر :

توی کامیونیتی خارج ایران یه نفر گفته بود آیا مهندسان نرم‌افزار بزرگ به مدرک نیاز دارن؟ یا اینکه اشتیاق و مهارت کافیه؟
اکثرا تایید کرده بودن که مدرک زیاد کمکشون نکرده.

کاربر heydathan گفته بود : نه، مدرک فقط نشون می‌ده که حداقل ۳۵ درصد از اصول پایه‌ای علوم کامپیوتر رو می‌دونین. می‌تونین به تنهایی اینو یاد بگیرین.

@Linuxor
Forwarded from ASafaeirad
"This is where pragmatism comes in. You shouldn’t be wedded to any particular technology, but have a broad enough background and experience base to allow you to choose good solutions in particular situations. Your background stems from an understanding of the basic principles of computer science, and your experience comes from a wide range of practical projects. Theory and practice combine to make you strong!"
Pragmatic Programmer
Forwarded from  (Amir Hossein 'Amiria' Maher)
Forwarded from 🎄 یک برنامه نویس تنبل (  MΞ)
🔸Multi-Account Containers

فرض کن توی یک سایتی میخوای چندتا اکانت باز کنی خب هم مدیریت سخته هم باید هعی logoutوlogin کنی دیگه کپچا داشته باشه که بدتر
کروم بصورت دیفالت این فیچر رو داره ولی برای فایرفاکس باید اکستنشنشو نصب کنید میان یک کانتینر جدا براتون درنظر میگیرن که کوکی و سشن و... جدا هستش که راحت با یه کلیک میتونید سوویچ کنید به اکانت دیگه
واقعا نعمت بزرگیه همینکه باعث میشه از ورژن پولی chatgpt استفاده کنم و نیاز روزمره برطرف بشه خیلیه

https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers

#معرفی
@TheRaymondDev
Forwarded from a pessimistic researcher (Kc)
جهت یادآوری این جلسه تا دقایقی دیگر شروع میشه.
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
🔥 پروژه ای جذاب Gitdiagram
هر مخزن GitHub را به یک نمودار تعاملی به صورت visualization تبدیل میکنه.
وارد سایت Gitdiagram شوید و لینک پروژه Github مورد نظر را وارد کنید با visualize سریع ساختار پروژه میتواند درک بهتری از ساختار پروژه داشته باشید.

نکات مهم :
🗓 روی بعضی پروژه ها مشکل API پیدا میکنه و لود نمیکنه چند روز بعد دوباره تست کنید
🗓 اگر فقط میخواهید نتیجه را ببینید گزینه های زیر که برای تست گذاشته cache شده از انها استفاده کنید
💠 همچنین می‌توانید «hub» را با «diagram» در هر URL Github جایگزین کنید
✳️مثلا
https://github.com/fastapi/fastapi

میشه این
https://gitdiagram.com/fastapi/fastapi

نتیجه را بیینید
❤️ ممنون از حمایت هاتون 💐🌺
#programming
Forwarded from Agora (Amir) via @vote
موافق تمدید مینی پروژه اول هستید؟
public poll

بلی – 22
👍👍👍👍👍👍👍 92%
@Sina_Ghalebi, @Alivasisari, @HRNavaei, @AmirHekmat_79, @sahn11, @Amirkzm0098, @kosar460, @T_grmpour, @Rezvani2001, @Mmdrkh, @fereydoni7, @amirahs2000, @AryanMatin2001, S A R🌸, @DtechB, @mahoor_sk, @HaviTheAllFather, @javad936807, @m_ka2001, @EscapeItAll, Sheyda🌻, @ShahHosseinian

خیر – 2
👍 8%
@M0S0H77, @alireza_azdi

👥 24 people voted so far.
Forwarded from Linuxor ?
پنل وب 1Panel رو می‌تونین روی سرور لینوکستون نصب کنید، مانیتورینگ هاست ، فایل منیجر، منیج دیتابیس ها رو باهاش انجام بدین.

پنل یوزر فرندلی هستش به راحتی باهاش می‌تونین یه وب مثل وردپرس بالا بیارین و براش دامین ست کنید.


https://github.com/1Panel-dev/1Panel


@Linuxor
Forwarded from Codino School (ایمان غفوری)
آیا مفهوم تست نویسی برای شما گنگ هست؟
Anonymous Poll
55%
بله
45%
خیر
ترمینال Ptyxis رو بالاخره تونستم روی موبایل کامپایل و اجراش کنم و باید بگم که از گنوم کنسول و گنوم ترمینال خیلی بهتره :)))))



توی پارچ گنوم ترمینال پیشفرض ptyxis هستش


@SohrabContents
Forwarded from Linuxor ?
تیلور خالق لاراول می‌گه :

ابتدا "قسمت‌های جدید و متفاوت نرم‌افزار" رو بسازید. از صفحه لاگین یا چیزهایی که قبلاً بارها ساختید شروع نکنید. با شروع از چیزهایی که تازه و متفاوت هستند، خیلی سریع‌تر عدم قطعیت رو از بین می‌برید. همچنین، احتمال شکست در این قسمت‌ها بیشتره، که اتفاقاً چیز خوبیه! اگه قراره با مانع بزرگی روبرو بشید، بهتره خیلی زود اینو بفهمید، قبل از اینکه زمان زیادی رو صرف بخش‌های تکراری و معمولی کرده باشی.


@Linuxor ~ laraveljobs_news
Forwarded from Linuxor ?
یه روز یه کرنلی بود درایور هاشو خیلی دوست داشت یکی از درایور هاش خراب شد، پنیک کرد.


@Linuxor