Forwarded from Md Daily (Mahan)
خیلیها عمر و پولشون رو پای ساخت محصولاتی میذارن که هیچکس نمیخواد. داشتم مقاله ی How I'd Validate a SaaS Idea in 2025 (Without Writing Code)
رو میخوندم از یه بنیانگذار که میگفت: "کاش زودتر میفهمیدم چطور ایدههام رو اعتبارسنجی کنم، قبل از اینکه یه خط کد بنویسم." اون میگفت اگه الان بخواد یه ایده SaaS رو ارزیابی کنه، قبل از یک خط کد نوشتن، این کارها رو انجام میده. نه ساخت لندینگ پیج، نه جمعآوری ایمیل. فقط ترفندهایی که آرزو میکرد کاش زودتر میدونستشون.
همه میگن "مشکل رو پیدا کن". بله، مشکل باید وجود داشته باشه، اما یه حقیقت تلخ هست: مردم از خیلی چیزها شاکیان ولی حاضر نیستن براش پول بدن. اینکه بگن "CRM من پیچیدهست" یعنی نمیخواد عوضش کنه. "از فاکتور زدن متنفرم" یعنی ابزار تو رو نمیخره. "این کار دستی انجام میشه" یعنی نمیخواد اتوماتیک بشه. تنها سوال مهم اینه: کسی حاضره برای حل این مشکل، به تو پول بده؟ نه "آیا استفاده میکنی؟" یا "آیا اذیتت میکنه؟" بلکه "اینم پول من." نظرسنجی "مشکلسنجی" رو فراموش کن. مستقیم برو سراغ میزان پرداخت.
یه لندینگ پیج با فرم ایمیل، فقط یه عدد بیمعنیه. بنیانگذار میگفت من ۲۰۰۰ ایمیل جمع کردم و فقط ۳ مشتری پولی داشتم! روش کارآمد اینه: یه صفحه ساده بساز که راهحل تو رو توضیح بده (نه مشکل). قیمت واقعی رو بذار. دکمه "شروع" بذار. بعد از کلیک: "ظرفیت محدوده، میخواید با ما تماس بگیرید تا دستی وارد سیستمتون کنیم؟" توی تماس، راستشو بگو: "ما تازه شروع کردیم و این کار رو فعلاً دستی انجام میدیم. در عوض، یه سرویس ویژه و شخصی میگیرید." اگه پاپس کشیدن؟ خب، اونا هرگز مشتری نمیشدن. اگه هنوز علاقهمند بودن؟ تبریک! اعتبارسنجی شد. اون میگفت با این روش، ۳۰٪ تماسها رو به مشتری پولی تبدیل کرده، قبل از یه خط کد!
برنامهنویسها عاشق ساختنن، ولی سریعترین راه برای اعتبارسنجی اینه که خودت محصول بشی! مثلاً اگه ابزار فاکتور میسازی، فاکتورهای ۵ مشتری رو دستی براشون صادر کن. اگه ابزار زمانبندی شبکههای اجتماعی میسازی، پستها رو با اکسل دستی زمانبندی کن. اینجوری میفهمی: روند واقعی کار چیه، کدوم ویژگیها مهمن، و آیا وقتی مشکل حل میشه، مردم واقعاً پول میدن؟ یه نفر ۳ ماه "ربات انسانی" بود و با این روش یه SaaS با $50k درآمد سالانه رو اعتبارسنجی کرد. وقتی شروع به کد زدن کرد، دقیقاً میدونست چی میخواد.
همه تئوری MVP شخصی (Concierge MVP) رو بلدن. ولی تو عمل، تقریباً هیچکی درست انجامش نمیده.
مدل Concierge MVP (مخفف Minimum Viable Product) به زبان ساده یعنی اینکه به جای اینکه اول یک محصول کامل و خودکار بسازی، خدمت یا راهحل رو بهصورت دستی و شخصی به مشتریهای اولیه ارائه بدی.
هدف این روش اینه که قبل از هرگونه کدنویسی یا سرمایهگذاری زیاد، بفهمی آیا اصلا مردم حاضرن برای این راهحل پول بدن و مشکلشون واقعاً حل میشه یا نه. اینجوری، هم نیازها و مشکلات واقعی مشتری رو عمیقتر درک میکنی و هم ریسک هدر رفتن وقت و پولت رو به شدت کم میکنی
این چارچوبی که واقعاً جواب میده:
* هفته ۱-۲: ۱۰ مشتری بالقوه پیدا کن (نه دوست و آشنا).
* هفته ۳: پیشنهاد بده مشکلشون رو دستی حل کنی، با ۵۰٪ تخفیف از قیمت نهایی.
* هفته ۴: سرویس رو ارائه بده و همه جزئیات رو یادداشت کن.
* هفته ۵: بازخورد و پول رو بگیر.
* هفته ۶: تصمیم بگیر اصلا ارزش ساختن داره یا نه.
اگه نتونستی ۱۰ نفر رو پیدا کنی که باهاشون صحبت کنی، یعنی بازارت خیلی کوچیکه.
اگه نتونستی ۳ نفر رو راضی کنی که با ۵۰٪ تخفیف امتحانش کنن، یعنی مشکلشون به اندازه کافی جدی نیست.
اگه امتحانش کردن ولی پول ندادن، یعنی راهحل تو کار نمیکنه.
بدون کد. بدون لندینگ پیج. فقط اعتبارسنجی خالص.
سریعترین راه برای فهمیدن تقاضا: کسایی که الان برای یه راهحل دیگه پول میدن. نپرس چی رو دوست ندارن. بپرس: "چرا [رقیب] رو انتخاب کردید؟" "چی باعث میشه ابزارتون رو عوض کنید؟" "اگه [رقیب] چی رو حذف کنه، اشتراکتون رو لغو میکنید؟" فقط گوش کن. اگه ۵ نفر یا بیشتر به یه نقطه مشترک اشاره کردن که تو میتونی حلش کنی، اعتبارسنجی شد! اگه همه به جز قیمت، عاشق راهحل فعلیشون هستن یا یه ویژگی خاص رو میخوان که رقیب نمیسازه، باز هم اعتبارسنجی شد!
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Md Daily (Mahan)
Md Daily
این عجیبترین توصیهایه که بنیان گذار بهمون میکنه: قیمتگذاری رو قبل از اینکه بدونی چی میخوای بسازی مشخص کن.
چرا؟ چون قیمتگذاری همه چی رو تعیین میکنه:
* مشتریهات کیا هستن.
* چه ویژگیهایی مهمن.
* چقدر میتونی پشتیبانی بدی.
* اصلا مدل کسب و کارت جواب میده یا نه.
اگه داری به ماهی ۱۰ دلار فکر میکنی، به هزاران مشتری نیاز داری. این یه بازی کاملا فرق داره.
اگه داری به ماهی ۵۰۰ دلار فکر میکنی، فقط به چند ده مشتری نیاز داری. اعتبارسنجیش هم کلا فرق میکنه.
چارچوب اعتبارسنجی قیمتم:
* قیمت ۱۰ تا از رقیباتو پیدا کن.
* با ۵ تا از مشتریهای فعلی تو این حوزه صحبت کن.
* بپرس: "قیمت فلان محصول چقدر باید باشه که انتخابش براتون بیچون و چرا بشه؟"
* قیمت خودتو ۷۰٪ اون عدد تعیین کن.
* بعد اعتبارسنجی کن که آیا میتونی با اون قیمت، ارزش مورد نظر رو بدی یا نه.
اگه از نظر اقتصادی جور درنمیاد، همین الان ایده رو بکش. نه بعد از اینکه ساختیش.
قانون شخصی بنیان گذار میگفت: اگه نتونم ۱۰ مشتری پولی رو تصور کنم، نمیسازمش. نه ۱۰ نفر علاقهمند، نه ۱۰ ایمیل. ۱۰ نفر با کارت بانکی آماده. باید بتونی اسمشون رو بگی. نه "کسبوکارهای کوچک" یا "فریلنسرها". بلکه اسم واقعی یا شرکتهای مشخص. این مجبورت میکنه دقیق بشی. "مدیران پروژه شرکتهای ۵۰ نفره SaaS که از Jira متنفرن" قابل اعتبارسنجیه. "آدمهایی که ابزار بهرهوری میخوان" نیست.
اگه میتونی اسم ۱۰ تا مشتری بالقوه رو بگی و بگی چطور بهشون دسترسی پیدا میکنی، پس یه چیزی تو دستت داری.
سوالات فرضی، جوابهای فرضی دارن. به جای "آیا برای ابزار X پول میدین؟"، بپرس "آخرین بار کی برای حل مشکل X پول دادین؟". به جای "چقدر برای این محصول پول میدین؟"، بپرس "الان برای این مشکل چقدر هزینه میکنید؟". به جای "این ویژگی به دردتون میخوره؟"، بپرس "از آخرین باری که به همچین چیزی نیاز داشتید، برام بگید." رفتار گذشته، پیشبینیکننده رفتار آینده است. بقیه فقط تعارفه.
یه ترفند وقتگیر: محصولی که هنوز وجود نداره رو با ضمانت بازگشت وجه بفروش. مثلاً: "امروز $49 پرداخت کنید. اگه نتونستیم [نتیجه مشخص] رو تو ۳۰ روز بهتون تحویل بدیم، پولتون رو پس میگیرید." بعد اون نتیجه رو دستی بهشون بده. اگه نشد، پس بده. مزایاش: ۱. مجبورت میکنه قولهای ملموس بدی. ۲. حساسیت به قیمت رو با پول واقعی اعتبارسنجی میکنه. ۳. یاد میگیری آیا راهحل تو واقعاً کار میکنه. اگه همه پولشون رو پس خواستن، با هزینه کم فهمیدی ایده جواب نمیده. این اعتبارسنجی ارزونه! اگه بیش از ۷۰٪ پولشون رو پس نگرفتن و ادامه دادن؟ تبریک، تو یه کسبوکار داری!
اکثر ایدهها باید تو مرحله اعتبارسنجی بمیرن. اگه این شرایط رو داشتی، بیخیال شو: نتونستی ۱۰ نفر رو پای تلفن بیاری. کمتر از ۳۰٪ مردم به پرداخت پول علاقهمند بودن. نسخه دستی تو بیش از ۵۰٪ درخواست بازگشت وجه داشت. نمیتونی با هیچ قیمتی، سودآور باشی. مدل اقتصادیت حتی در مقیاس بزرگ هم جواب نمیده. پیوت نکن، هی تغییر نده. برو سراغ ایده بعدی. مثالی که توی مقاله اومده بود میگفت کشتن ۳ ایده در مرحله اعتبارسنجی، ۱۸ ماه وقتش رو نجات داده و این شکست نیست، زرنگیه!
اگه قرار بود فردا یه ایده SaaS جدید رو اعتبارسنجی بشه، این برنامه دقیق ۳۰ روزه ایه که تو مقاله گفته شده بود:
* روز ۱-۵: تحقیق در مورد رقبا، پیدا کردن نقاط ضعفشون از دید مشتری.
* روز ۶-۱۰: ۲۰ مکالمه با مشتریهای بالقوه.
* روز ۱۱-۱۵: ساختن تست "در قلابی" با قیمتگذاری واقعی.
* روز ۱۶-۲۰: وارد کردن ۱۰ نفر به دوره آزمایشیِ دستیِ پولی.
* روز ۲۱-۲۵: ارائه سرویس به صورت دستی، ثبت کردن همه چیز.
* روز ۲۶-۳۰: جمعآوری پرداخت یا کشتن ایده.
بدون کد. بدون لندینگ پیج. بدون لیست انتظار.
فقط اعتبارسنجی واقعی با مشتریهای واقعی که پول واقعی پرداخت میکنن.
بنیان گذار میگفت این چیزیه که آرزو میکردم یکی ۵ سال پیش بهم گفته بود:
هدف این نیست که وجود یه مشکل رو اعتبارسنجی کنی.
هدف اینه که اعتبارسنجی کنی که میتونی اون مشکل رو به صورت سودآور حل کنی.
هر کار دیگهای جز این، فقط پول حروم کردن و وقت تلف کردنه.
نکته آخر: ۹۰٪ چیزهایی که مردم در اعتبارسنجی میگن رو فراموش میکنی. هر مخالفت، هر "اگه اینطور بود..." و هر "تقریباً"، نقشه راه واقعی محصول توئه. از روز اول همه اینها رو ثبت کن. خود آیندهات ازت تشکر میکنه!
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Md Daily (Mahan)
اگه به حوزه ی استارتاپ علاقه دارید این منابع رو هم بهتون پیشنهاد میکنم:
📖 کتاب اجرای ناب (running lean) از ash maurya
📖 کتاب راهنمای تولید ناب از dan olsen
🎙️ پادکست Papyrus |پاپیروس | خلاصه کتاب کسب و کار تو کست باکس (https://castbox.fm/vh/6358611) | مخصوصا اپیزود نوپای ناب
🆔 @MdDaily
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
اگر ادمین سیستم هستید و با سرورهای ویندوزی کار میکنید، این ابزار برای شماست!
بهتون پیشنهاد میکنم ریپازیتوری WinTempCln رو بررسی و به صورت دورهای اجراش کنید تا فضای سرور بهینه بمونه و عملکرد بهتر بشه.
https://github.com/roozysoft/winTempcln
@DevTwitter | <Roozbeh PH/>
بهتون پیشنهاد میکنم ریپازیتوری WinTempCln رو بررسی و به صورت دورهای اجراش کنید تا فضای سرور بهینه بمونه و عملکرد بهتر بشه.
https://github.com/roozysoft/winTempcln
@DevTwitter | <Roozbeh PH/>
Forwarded from DevTwitter | توییت برنامه نویسی
مفتخرم Nogital Focus را به عنوان یک داشبورد متنباز و ماژولار جهت مدیریت تمرکز، رهگیری KPI شخصی و بهبود بهرهوری حرفهایها معرفی کنم
مخصوص افرادی که میخواهند رشد شخصی و کار عمیق بدون حواسپرتی را تجربه کنند.
https://github.com/nasserhaji/nogital-focus
@DevTwitter | <Mohammad Nasser Hajihashemabad/>
مخصوص افرادی که میخواهند رشد شخصی و کار عمیق بدون حواسپرتی را تجربه کنند.
https://github.com/nasserhaji/nogital-focus
@DevTwitter | <Mohammad Nasser Hajihashemabad/>
Forwarded from DevTwitter | توییت برنامه نویسی
تو ویدیو زیر خلاصه و مفید با هر آنچه که یک AI Engineer باید در مورد GPU بدونه آشنا میشید، از دستش ندید!
https://www.youtube.com/watch?v=y-UGrYbJsJk&feature=youtu.be
@DevTwitter | <Reza Jafari/>
https://www.youtube.com/watch?v=y-UGrYbJsJk&feature=youtu.be
@DevTwitter | <Reza Jafari/>
Forwarded from DevTwitter | توییت برنامه نویسی
یک پروژه شسته رُفته از پیاده سازی یک RAG پیشرفته با استفاده از llamaIndex و روی Google Cloud Vertex AI. که این موضوعات را هم پوشش میده:
- RAG design, indexing, retrieval, evaluation metrics
میتونید کامل هم روی Cloud یا لوکال اجرا کنید و تکنیکهای مختلف را تست کنید.
Github: https://github.com/GoogleCloudPlatform/generative-ai/tree/main/gemini/sample-apps/llamaindex-rag
@DevTwitter | <Mehdi Allahyari/>
- RAG design, indexing, retrieval, evaluation metrics
میتونید کامل هم روی Cloud یا لوکال اجرا کنید و تکنیکهای مختلف را تست کنید.
Github: https://github.com/GoogleCloudPlatform/generative-ai/tree/main/gemini/sample-apps/llamaindex-rag
@DevTwitter | <Mehdi Allahyari/>
Forwarded from DevTwitter | توییت برنامه نویسی
اولین نسخه پکیج Laravel Reactions بالاخره منتشر شد!
با این پکیج به راحتی میتونید قابلیت ریاکشن ایموجی رو به مدلهای لاراولیتون اضافه کنید.
ویژگیها:
- پشتیبانی از چند نوع ریاکشن و ریاکشن های کاستوم
- قابلیت تنظیم مدلهای قابل ریاکشن
- مستندات کامل
- ساده، تمیز و....
گیتهاب: https://github.com/binafy/laravel-reactions
@DevTwitter | <Milwad Khosravi/>
با این پکیج به راحتی میتونید قابلیت ریاکشن ایموجی رو به مدلهای لاراولیتون اضافه کنید.
ویژگیها:
- پشتیبانی از چند نوع ریاکشن و ریاکشن های کاستوم
- قابلیت تنظیم مدلهای قابل ریاکشن
- مستندات کامل
- ساده، تمیز و....
گیتهاب: https://github.com/binafy/laravel-reactions
@DevTwitter | <Milwad Khosravi/>
Forwarded from DevTwitter | توییت برنامه نویسی
شاید در نگاه اول، اینکه کسی بخواد طی ۱۲ ساعت به صورت لایو، یک شبکه عصبی رو روی تخته وایت برد Train کنه عجیب، غیرعادی یا مضحک به نظر برسه ولی دیدنش برای من مثل تجربه یک ماجراجویه، همونقدر جالب و وسوسه برانگیز :)))
آقای Sam Westby توضیح میده که هدفش نشون دادن پیچیدگی واقعی و حجم محاسبات آموزش یک شبکه عصبی و همینطور به چالش کشیدن خودشه.
اون سعی میکنه یک شبکه عصبی ساده رو روی دیتاست MNIST بدون استفاده از هیچ ماشین حساب یا ابزار الکترونیکی و فقط با محاسبات دستی و کمترین استراحت ذهنی، آموزش بده.
اگه شما هم به دنبال درک شهودی و عمیق تری از شبکه های عصبی هستید این ویدیو رو بهتون پیشنهاد میکنم.
Part 1:
https://www.youtube.com/live/T_2fgNMY5bA
Part 2:
https://www.youtube.com/live/uNa1cemGpC8
@DevTwitter | <Zahra Sahranavard/>
آقای Sam Westby توضیح میده که هدفش نشون دادن پیچیدگی واقعی و حجم محاسبات آموزش یک شبکه عصبی و همینطور به چالش کشیدن خودشه.
اون سعی میکنه یک شبکه عصبی ساده رو روی دیتاست MNIST بدون استفاده از هیچ ماشین حساب یا ابزار الکترونیکی و فقط با محاسبات دستی و کمترین استراحت ذهنی، آموزش بده.
اگه شما هم به دنبال درک شهودی و عمیق تری از شبکه های عصبی هستید این ویدیو رو بهتون پیشنهاد میکنم.
Part 1:
https://www.youtube.com/live/T_2fgNMY5bA
Part 2:
https://www.youtube.com/live/uNa1cemGpC8
@DevTwitter | <Zahra Sahranavard/>
Forwarded from DevTwitter | توییت برنامه نویسی
این Requirement Driven Vibe Coding چیه؟
یعنی قبلا ازینکه پروژه رو شروع کنیم٬ میشینیم قشنگ User Story و Requirementها رو می نویسیم و بر اساس اون جلو می ریم.
چندتا اسکرینشات که چجوری این Requirementهارو می نویسیم.
@DevTwitter | <Von Datawarehausen/>
یعنی قبلا ازینکه پروژه رو شروع کنیم٬ میشینیم قشنگ User Story و Requirementها رو می نویسیم و بر اساس اون جلو می ریم.
چندتا اسکرینشات که چجوری این Requirementهارو می نویسیم.
@DevTwitter | <Von Datawarehausen/>
Forwarded from DevTwitter | توییت برنامه نویسی
میدونستید Microsoft Learn هم MCP Server داره؟
https://github.com/microsoftdocs/mcp
امروز داشتم در مورد مفهوم Declaration Space در سیشارپ تو کتاب Programming C# 12 میخوندم. گفتم ببینم تو داکیومنتهای مایکروسافت چی درموردش نوشته. با این MCP میتونید دسترسی به داکیومنتهای مایکروسافت رو به AI Agent خودتون بدید و آخرین اطلاعات رو بهتر دریافت کنید
@DevTwitter | <Serajoddin Aliabadi/>
https://github.com/microsoftdocs/mcp
امروز داشتم در مورد مفهوم Declaration Space در سیشارپ تو کتاب Programming C# 12 میخوندم. گفتم ببینم تو داکیومنتهای مایکروسافت چی درموردش نوشته. با این MCP میتونید دسترسی به داکیومنتهای مایکروسافت رو به AI Agent خودتون بدید و آخرین اطلاعات رو بهتر دریافت کنید
@DevTwitter | <Serajoddin Aliabadi/>
Forwarded from DevTwitter | توییت برنامه نویسی
ابزار FHE Search System منتشر شد:)
موتور جستجوی امن با حفظ حریم خصوصی!
ویژگیها:
- استفاده از همومورفیک
- جستجو بدون دیده شدن دادهها
- پشتیبانی کامل از سه زبان
- کاملاً رایگان و متنباز
مناسب شاخه ها: پزشکی، حقوقی، مالی
@DevTwitter | <Amin/>
موتور جستجوی امن با حفظ حریم خصوصی!
ویژگیها:
- استفاده از همومورفیک
- جستجو بدون دیده شدن دادهها
- پشتیبانی کامل از سه زبان
- کاملاً رایگان و متنباز
مناسب شاخه ها: پزشکی، حقوقی، مالی
@DevTwitter | <Amin/>
Forwarded from DevTwitter | توییت برنامه نویسی
دوستان فرانتاند.
یک کامپوننت با shadcn ساختم اسمشو فعلا گذاشتم PersianWheelPicker که میتوانید بهعنوان یک Date Picker فارسی ازش استفاده کنید.
هنوز در مراحل اولیه است و سادهست—خوشحال میشم با Forkهاتون بهترش کنید D:
https://github.com/deaduchiha/persian-wheel-picker
@DevTwitter | <Alireza Nikzad/>
یک کامپوننت با shadcn ساختم اسمشو فعلا گذاشتم PersianWheelPicker که میتوانید بهعنوان یک Date Picker فارسی ازش استفاده کنید.
هنوز در مراحل اولیه است و سادهست—خوشحال میشم با Forkهاتون بهترش کنید D:
https://github.com/deaduchiha/persian-wheel-picker
@DevTwitter | <Alireza Nikzad/>
Forwarded from DevTwitter | توییت برنامه نویسی
خیلی از زرنگها با Shift+Del اشتباهی ممکنه خودشون را به فنا بدهند
برای غیرفعال کردن Shift+Del جوری که اگر اشتباهی فایل را پاک کردید از سطل بتوان بازیابی کرد PowerToys را نصب کنید و از قسمت
Keyboard Manager
یک شورتکات جدید تعریف کنید که Shift+Del را غیرفعال کنه، حالا Enable Keyboard Manager را یک بار خاموش روشن کنید و Shift+Del از کار میفته
آخرین نسخه نرم افزار مایکروسافت پاورتویز
https://github.com/microsoft/PowerToys/releases/
@DevTwitter | <Teegra/>
برای غیرفعال کردن Shift+Del جوری که اگر اشتباهی فایل را پاک کردید از سطل بتوان بازیابی کرد PowerToys را نصب کنید و از قسمت
Keyboard Manager
یک شورتکات جدید تعریف کنید که Shift+Del را غیرفعال کنه، حالا Enable Keyboard Manager را یک بار خاموش روشن کنید و Shift+Del از کار میفته
آخرین نسخه نرم افزار مایکروسافت پاورتویز
https://github.com/microsoft/PowerToys/releases/
@DevTwitter | <Teegra/>
Forwarded from DevTwitter | توییت برنامه نویسی
چند وقت پیش مسئولیت Refactor بخشی از یک پروژه بزرگ Next.js بهم سپرده شد.
بخشی از این کار، شناسایی و حذف کدها و فایلهای بلااستفاده (Dead Code) بود کاری که توی پروژههای بزرگ معمولاً سخت، زمانبر و پرریسکه.
برای سادهتر کردن این مسیر، به ابزار knip رسیدم. ابزار قدرتمندی که فایلها، فانکشن ها و حتی dependencyهای بلااستفاده رو شناسایی میکنه.
در عمل، knip تونست بخش زیادی از dead code ها رو شناسایی کنه، اما دو نکتهی جالب و مهم برام داشت:
- اولی مربوط به component tree بود.
یکسری کامپوننتها بهعنوان dead code تشخیص داده شده بودن، در حالی که وقتی سرچ میکردم، میدیدم یه جای دیگه دارن استفاده میشن. اما وقتی کامپوننت parent رو بررسی کردم، فهمیدم اون خودش هیچجا استفاده نشده و این باعث شده بود که child رو هم dead code بدونه. این عمق تحلیل وابستگی، برام قابل توجه بود.
- دومی تشخیص ناقص بعضی dependencyها بود.
برای مثال، tailwindcss و یکی از پلاگینهاش که در فایل CSS ایمپورت شده بودن، بهعنوان unused معرفی شدن. همینطور بعضی پلاگینهای ESLint هم به اشتباه در لیست قرار گرفته بودن. این یعنی خروجی ابزار، هرچقدر هم دقیق باشه، همچنان نیاز به بررسی انسانی داره.
این تجربه باعث شد ابزارهای تحلیل ایستا (static analysis) رو جدیتر ببینم؛ نه فقط برای حذف کد، بلکه برای درک بهتر ساختار پروژه.
این اولین پست من در لینکدین هست و تصمیم دارم تجربههای فنیم رو در قالب روایتهایی از چالشهای روزمره به اشتراک بذارم.
https://github.com/webpro-nl/knip
@DevTwitter | <Mohammad Nazari/>
بخشی از این کار، شناسایی و حذف کدها و فایلهای بلااستفاده (Dead Code) بود کاری که توی پروژههای بزرگ معمولاً سخت، زمانبر و پرریسکه.
برای سادهتر کردن این مسیر، به ابزار knip رسیدم. ابزار قدرتمندی که فایلها، فانکشن ها و حتی dependencyهای بلااستفاده رو شناسایی میکنه.
در عمل، knip تونست بخش زیادی از dead code ها رو شناسایی کنه، اما دو نکتهی جالب و مهم برام داشت:
- اولی مربوط به component tree بود.
یکسری کامپوننتها بهعنوان dead code تشخیص داده شده بودن، در حالی که وقتی سرچ میکردم، میدیدم یه جای دیگه دارن استفاده میشن. اما وقتی کامپوننت parent رو بررسی کردم، فهمیدم اون خودش هیچجا استفاده نشده و این باعث شده بود که child رو هم dead code بدونه. این عمق تحلیل وابستگی، برام قابل توجه بود.
- دومی تشخیص ناقص بعضی dependencyها بود.
برای مثال، tailwindcss و یکی از پلاگینهاش که در فایل CSS ایمپورت شده بودن، بهعنوان unused معرفی شدن. همینطور بعضی پلاگینهای ESLint هم به اشتباه در لیست قرار گرفته بودن. این یعنی خروجی ابزار، هرچقدر هم دقیق باشه، همچنان نیاز به بررسی انسانی داره.
این تجربه باعث شد ابزارهای تحلیل ایستا (static analysis) رو جدیتر ببینم؛ نه فقط برای حذف کد، بلکه برای درک بهتر ساختار پروژه.
این اولین پست من در لینکدین هست و تصمیم دارم تجربههای فنیم رو در قالب روایتهایی از چالشهای روزمره به اشتراک بذارم.
https://github.com/webpro-nl/knip
@DevTwitter | <Mohammad Nazari/>
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی که با AI Agent ها کار میکنید وایجنت قراره که یک کد را اجرا کنه، برای اینکه بیخطر باشه و مشکلی پیش نیاد، بهترین روش اینه که کد توی یک محیط ایزوله/sandbox اجرا بشه و خروجی کد برگرده به ایجنت. این کتابخونه واقعا یکی از بهترین هاست برای این کار. هم راحت نصب میشه و هم زبانهای مختلف را پشتیبانی میکنه. حتما امتحانش کنید.
Github: https://github.com/vndee/llm-sandbox
@DevTwitter | <Mehdi Allahyari/>
Github: https://github.com/vndee/llm-sandbox
@DevTwitter | <Mehdi Allahyari/>
Forwarded from DevTwitter | توییت برنامه نویسی
امروز یکی از پروژه های لاراولی که داکرایز شده بود رو میخواستم ببرم روی octane و مشکلم روی محیط develop این بود که بعد از تغییر فایل ریلود نمیشد و اگه نمیتونستم از --watch هم استفاده کنم چون با خطا مواجه میشدم.
تصمیم گرفتم یه اسکریپت ساده بنویسم که این مشکل من رو حل کنه و هر وقت فایلی تغییر میکنه دستور
php artisan octane:reload
رو برای من به صورت خودکار اجرا کنه.
بعد دیدم این مشکل ممکنه خیلی جاهای دیگه هم وجود داشته باشه.
برای همین اسکریپت رو تبدیل به پکیج کردم تا راحت تر بتونم ازش استفاده کنم.
گفتم با شما هم به اشتراک بزارم.
فرقی هم نمیکنه پروژه شما گولنگی باشه یا php یا هر چیزی میتونید از این watcher استفاده کنید.
هر چند برای هر استکی یه همچین ابزاری هست. اما این پکیج خیلی سادست و چیز خاص و اضافه ای نداره.
https://github.com/zhitoo/watcher
@DevTwitter | <Hossein Shafiei/>
تصمیم گرفتم یه اسکریپت ساده بنویسم که این مشکل من رو حل کنه و هر وقت فایلی تغییر میکنه دستور
php artisan octane:reload
رو برای من به صورت خودکار اجرا کنه.
بعد دیدم این مشکل ممکنه خیلی جاهای دیگه هم وجود داشته باشه.
برای همین اسکریپت رو تبدیل به پکیج کردم تا راحت تر بتونم ازش استفاده کنم.
گفتم با شما هم به اشتراک بزارم.
فرقی هم نمیکنه پروژه شما گولنگی باشه یا php یا هر چیزی میتونید از این watcher استفاده کنید.
هر چند برای هر استکی یه همچین ابزاری هست. اما این پکیج خیلی سادست و چیز خاص و اضافه ای نداره.
https://github.com/zhitoo/watcher
@DevTwitter | <Hossein Shafiei/>
Forwarded from DevTwitter | توییت برنامه نویسی
به نظرتون برای یه سایت با وردپرس و المنتور و جتانجین، چقدر باید هزینه گرفت؟
دقت کنید که کار نوکد/لوکد داره انجام میشه.
رینو، طراح سایت ساکن هلند، روند طراحی و هزینه دریافت شده برای یکی از پروژههاش رو مستند کرده:
https://www.youtube.com/watch?v=TKwqTarIqok
@DevTwitter | <Yaser Shahi/>
دقت کنید که کار نوکد/لوکد داره انجام میشه.
رینو، طراح سایت ساکن هلند، روند طراحی و هزینه دریافت شده برای یکی از پروژههاش رو مستند کرده:
https://www.youtube.com/watch?v=TKwqTarIqok
@DevTwitter | <Yaser Shahi/>