Wenbin Fang
من در یک کلاس مهندسی نرم افزار کارشناسی (CSCE431) در دانشگاه تگزاس A& M در مارس 2019 سخنرانی میهمان کردم. اکنون این سخنرانی را در اینجا به یک پست وبلاگ تبدیل کرده ام و امیدوارم برخی از افراد در اینترنت این موضوع را مفید بدانند.
اگر از جستجوی Google وارد شده اید ، در اینجا برخی از زمینه ها وجود دارد:
من یک شرکت اینترنتی کوچک را اداره می کنم-گوش دادن به یادداشت ها ، شرکت-تنها با یک کارمند تمام وقت (من) ، از تاریخ 2 آگوست 2019. ما یک وب سایت جستجوی پادکست Listennotes. com و یک API پادکست ساختیم.
من تجربه خود را در مورد راه اندازی یک شرکت اینترنتی با شما به اشتراک می گذارم. ساختن یک محصول اینترنتی مانند ساخت آیفون یا هرم نیست. محصول شما در ابتدا نیازی به کامل بودن ندارد. اگر در حال ساختن چیز مفیدی هستید ، افراد دیگر به شما خواهند گفت که بعد چه کاری انجام دهید. و متوجه خواهید شد که بعدی چیست. به طور کلی ، اگر می خواهید شرکت خود را راه اندازی کنید ، باید با عدم اطمینان راحت باشید.
اولین نسخه فیس بوک در اوایل فوریه 2004 راه اندازی شد که فقط چهار هفته کار دانشجوی کارشناسی ارشد بود. این محصول به اندازه کافی خوب با مهندسی کافی بود. امروزه هر دانشکده علوم کامپیوتر باید با استفاده از یک چارچوب برنامه نویسی وب مدرن (به عنوان مثال ، Rails ، Django…) اولین نسخه از فیس بوک را در طی یک آخر هفته بسازد.
شرکت هایی مانند Google ، Snapchat ، Spotify ، Amazon ، Twitter و دیگران همه شرکت های اینترنتی عالی در نسل ما هستند.
با این حال ، من نمی توانم به شما بگویم که چگونه یک شرکت به اندازه آنها موفق شوید. من هنوز آنجا نیستماین شرکت ها بسیار موفق و بسیار بزرگ هستند. به عنوان مثال ، گوگل از مارس 2019 100000 کارمند دارد. اما لحظه ای در تاریخ زمان وجود داشت که گوگل فقط دو کارمند داشت. شما باید از جایی یا هیچ جا شروع کنید. من می توانم در مورد نحوه شروع صحبت کنم.
امیدوارم بعد از این درس ، احساس کنید که شروع یک شرکت اینترنتی به هیچ وجه سخت نیست. و در مورد برخی از ابزارها و خدماتی که می توانید در پروژه های آینده خود استفاده کنید ، خواهید آموخت.
شما می شنوید که می گویم "یک ابزار وجود دارد" زیاد است. منظور من از "مهندسی به اندازه کافی" است. اکنون 2019 است. بعید نیست که شما اولین کسی باشید که با یک مشکل اساسی جدید روبرو می شوید. باید ابزارها و خدماتی در آنجا وجود داشته باشد که می تواند به شما در حل مشکلات کمک کند - اغلب اوقات ، به صورت رایگان!
قبل از اینکه بیشتر از آن استفاده کنیم ، اجازه دهید مختصراً از یادداشت های گوش دادن را ارائه دهم.
Listen Notes یک وب سایت موتور جستجوی پادکست است. شما یک کلمه کلیدی را تایپ می کنید و کل پادکست های اینترنت را جستجو می کنید. به همین سادگی گوگل است :) اما ساده به معنای آسان نیست. ما همچنین ابزارهای زیادی را در بالای موتور جستجوی اصلی ساختیم تا به مردم کمک کنیم پادکستها را کشف کرده و از آن لذت ببرند.
بیایید یک قدم به عقب برگردیم تا در مورد پادکست ها صحبت کنیم. پادکست نوعی فرمت رسانه ای است. برخی از مردم آن را "رادیو بر اساس تقاضا" می نامند. ما روزانه هزاران محتوای رسانه ای مصرف می کنیم. ما ویدیوهای یوتیوب را تماشا می کنیم، تلویزیون تماشا می کنیم، کتاب می خوانیم، به موسیقی گوش می دهیم و به پادکست گوش می دهیم. ما از محتوای رسانه ای استفاده می کنیم زیرا می خواهیم اطلاعات کسب کنیم، دانش کسب کنیم و سرگرم شویم. امروزه می توانید به معنای واقعی کلمه هر موضوعی را با گوش دادن به پادکست ها یاد بگیرید. میتوانید وقتی چشمها و دستهایتان مشغول هستند به پادکستها گوش دهید (مانند رانندگی، ورزش، پیادهروی، انجام کارهای خانه…).
در اوایل سال 2017، متوجه شدم که اطلاعات بیشتری از پادکستها نسبت به سایر قالبهای رسانهای (مانند تلویزیون، کتاب...) مصرف میکنم. من به یک موتور جستجوی پادکست نیاز داشتم که بتوانم از آن برای جستجو و یافتن قسمتهای جداگانه برای گوش دادن به آن استفاده کنم. در گذشته، وجود یک موتور جستجوی پادکست باید بسیار ساده باشد. ولی خوب نتونستم پیدا کنمبنابراین من کمتر از یک هفته را صرف ساختن یک نمونه اولیه از Listen Notes کردم، موتور جستجوی پادکست که از خواستهها و نیازهای خودم نشأت میگیرد.
اولین نسخه Listen Notes. اعتبار: Lifehacker
من نمونه اولیه را راه اندازی کردم و خودم خیلی از آن استفاده کردم. اما من حدود نه ماه به کد دست نزدم، تا اینکه تصمیم گرفتم پس از ترک اولین استارتاپ ناموفق خود، تمام وقت روی آن کار کنم. سپتامبر 2017 بود. بعد از 1. 5 سال، من هنوز از کار کردن در Listen Notes لذت می برم :)
آیا باید بدانید که کجا می توانید یک دفتر پیدا کنید؟بله، یک سرویس برای آن وجود دارد. من از WeWork استفاده می کنم. من یک دفتر کوچک در داخل WeWork در سانفرانسیسکو دارم. دفتر کار ارزان نیست، اما فکر می کنم سرمایه گذاری خوبی برای بهره وری است.
من میتوانم انتخاب کنم که خودم 200 درصد بازدهی بیشتری داشته باشم یا برای استخدام یک کارمند دیگر هزینه کنم. می توانم انتخاب کنم که در پول خود صرفه جویی کنم و زمان بیشتری را تلف کنم یا در زمان صرفه جویی کنم و پول بیشتری به دست بیاورم. اگه جای من بودی انتخابت چی بود؟
با راه اندازی کسب و کار اینترنتی نیازمند داشتن یک شرکت رسمی، یک شخص حقوقی هستیم. یک سرویس برای آن وجود دارد.
من از Stripe Atlas برای ترکیب Listen Notes, Inc استفاده کردم. 500 دلار پرداخت کردم و ظرف 10 روز یک Delaware C Corp گرفتم. Stripe Atlas مزایای خوبی را ارائه می دهد، به عنوان مثال، اعتبارات AWS (سرویس وب آمازون) 5 هزار دلار. اما برای حفظ شرکت، باید هزینه کنم~2K دلار در سال برای مالیات ، حسابداری و سایر موارد. این یک ایده اساسی در مورد حداقل هزینه اداره یک شرکت به شما می دهد.
از آنجا که ما اکنون یک شرکت هستیم ، باید با برخی از موارد قانونی مقابله کنیم. یک سرویس برای آن وجود دارد.
شما می توانید از Clerky برای تولید اسناد قانونی استفاده کنید یا از Upcounsel برای دریافت وکیل استفاده کنید. من از هر دو سرویس استفاده کرده ام. آنها کامل نیستند ، اما ارزش پول را دارند. شما نمی توانید انتظار داشته باشید که خدمات ریتز-کارلتون را با قیمت مک دونالد دریافت کنید ، درست است؟اگر می خواهید خوشحال باشید ، بهتر است سطح صحیح انتظار را تعیین کنید.
برای شروع ، شما فقط به یک نام دامنه به اندازه کافی خوب نیاز دارید - یک دامنه 10 دلار در سال . com. شما همیشه می توانید بعداً یک نام دامنه عالی خریداری کنید.
به عنوان مثال ، Dropbox بیش از 2 سال از GetDropbox. com استفاده کرد قبل از اینکه Dropbox. com را با قیمت 300K دلار خریداری کنند. چگونه آن نوع چیزهای بی اهمیت را کشف کردم؟من به پادکست ها گوش می دهم! مصاحبه پادکست از درو هیوستون (بنیانگذار و مدیرعامل Dropbox) وجود داشت ، جایی که وی در مورد چگونگی تضمین نام دامنه Dropbox. com صحبت کرد.
پس از دریافت نام دامنه ، حتماً یک دسته از حساب های شرکت را در سایت های شبکه های اجتماعی مانند توییتر ، فیس بوک ، اینستاگرام و (شاید) اسنپ چت ایجاد کنید.
و بیشتر شرکت ها فقط از G Suite برای ایمیل شرکت خود استفاده می کنند ، که اساساً Gmail است.
شرکت های اینترنتی خدمات آنلاین می سازند. امروزه بیشتر نرم افزارها خدمات آنلاین هستند. اگر نمی توانید به اینترنت دسترسی پیدا کنید ، نمی توانید از بیشتر برنامه ها در تلفن خود استفاده کنید.
خدمات آنلاین به طور معمول مدل مشتری/سرور را دنبال می کنند. نرم افزار سمت مشتری درخواست ها را به سمت سرور ارسال می کند و برای ارائه UI یا انجام کارهای خاص پاسخ می دهد.
بدیهی است که همه وب سایت ها خدمات آنلاین هستند. ما برای دسترسی به وب سایت ها از مرورگرهای وب استفاده می کنیم. تا حدی ، برنامه های تلفن همراه مرورگرهای تخصصی هستند.
در سمت سرور ، سرورها را اجرا می کنیم. شما فقط برای شروع به سرورهای خوب نیاز دارید. منظور من از "سرورها" VPS (سرورهای خصوصی مجازی) است که اساساً دسترسی ریشه ای به آدرس IP را فراهم می کند. هنگامی که به یک آدرس IP (VPS) SSH رسیدید ، می توانید هر کاری را که می خواهید انجام دهید ، به عنوان مثال ، نرم افزار را نصب کرده و کد خود را در آنجا قرار دهید. و شما اکنون برای تجارت باز هستید.
برای VPS ، من توصیه می کنم در ابتدا از چیزی ساده استفاده کنید ، به عنوان مثال ، DigitalOcean یا AWS Lightsail. در یادداشت های گوش دادن ، ما حدود یک سال از DigitalOcean استفاده کردیم زیرا تنظیم ارزان و آسان است ، وقتی وب سایت ما ترافیک بیشتری پیدا کرد به AWS EC2 تغییر یافتیم و به انعطاف پذیری بیشتری نیاز داشتیم و "تولید".
چنین معماری باطن برای اجرای یک سرویس آنلاین بسیار رایج است.
طرف مشتری (به عنوان مثال ، مرورگرها) درخواست ها را ارسال می کند. متعادل کننده بار درخواست ها را به طور مساوی به سرورهای وب توزیع می کند. ما به طور معمول سرورهای وب زیادی را اجرا می کنیم ، جایی که کد سمت سرور در حال اجرا است (به عنوان مثال ، ریل ، جنگو ...). ما برای ذخیره اطلاعات خود به یک دیتاستور نیاز داریم. سرورهای وب برای خواندن و نوشتن داده ها با DataStore در تعامل هستند.
در سمت چپ ، پردازش همزمان است. در اینجا یک درخواست ارائه می شود ، و سرور وب آن را پردازش می کند و بلافاصله پاسخ را برمی گرداند. همزمان است
ما برای انجام کارهای غیر فوری ، طولانی مدت یا محاسباتی ، به پردازش ناهمزمان نیز نیاز داریم. ما نمی خواهیم منابع محاسباتی را برای چنین کارهایی در سرور وب مصرف کنیم. بنابراین ما به طور معمول چنین کارهایی را برای پردازش کارگران بارگیری می کنیم. سرورهای وب پیام ها را در صف پیام قرار می دهند و کارگران برای پردازش وظایف پیام ها را انتخاب می کنند.
به عنوان مثال ، ما این نوع تصویر را برای نتایج جستجو در یادداشت های گوش (مثال) تولید می کنیم:
این نوع کار تولید تصویر نوعی محاسبات فشرده است و فوری نیست. بنابراین ما به جای اینکه آنها را در سرورهای وب اداره کنیم ، آن را برای پردازش کارگران بارگیری می کنیم.
سرانجام ، باید یک برنامه ریزی برای مشاغل برنامه ریزی مبتنی بر زمان وجود داشته باشد. بسیاری از شرکت ها فقط از مشاغل Cron در لینوکس استفاده می کنند و وقتی بزرگتر می شوند به چیز دیگری تغییر می کنند (به عنوان مثال ، من چند سال پیش یک سیستم برنامه ریزی برای کارفرمای سابق خود برای جایگزینی مشاغل Cron ایجاد کردم). برای یادداشت های گوش دادن ، ما مشاغل برنامه ریزی مبتنی بر زمان زیادی داریم ، به عنوان مثال ، ارسال هشدارهای گوش دادن.
ما از nginx به عنوان یک متعادل کننده بار ساده استفاده می کنیم. کد باطن بیشتر در پایتون/جنگو است. ما از داده های مختلف برای اهداف مختلف استفاده می کنیم. ما از Postgres برای Datastore اصلی استفاده می کنیم ، که منبع واقعی ما است. ما یک موتور جستجو هستیم ، بنابراین از Elasticsearch استفاده می کنیم. ما برای بسیاری از موارد از Redis استفاده می کنیم ، اما بیشتر برای ذخیره و اجرای برخی از ویژگی های "سریع" مانند گوش دادن به زمان واقعی.
در زمین پردازش ناهمزمان ، از کرفس ، کرفس ضرب و شتم و RabbitMQ استفاده می کنیم.
ما باید فرآیندهای سمت سرور را 24/7 نگه داریم. ما بهتر است از نوعی مدیر فرآیند استفاده کنیم تا در صورت خرابی ، به طور خودکار فرآیندها را مجدداً راه اندازی کنیم. ما در یادداشت های گوش دادن از سرپرست زیادی استفاده می کنیم.
دو توصیه در اینجا:
- پشته های فنی شرکت های واقعی را در stackshare. io بیاموزید
- روزانه به مهندسی نرم افزار گوش دهید. آنها با مهندسین شرکت های واقعی مصاحبه می کنند ، بنابراین می توانید یاد بگیرید که شرکت ها چگونه مهندسی را انجام می دهند.
به عنوان کاربران نهایی ، ما از طریق ایمیل ، پیام کوتاه و اعلان های فشار ، اعلان های زیادی را از خدمات آنلاین دریافت می کنیم. وقتی یک راننده Uber نزدیک می شود ، ما اعلان های فشار را دریافت می کنیم. وقتی در آمازون خرید می کنیم ، اعلان های ایمیل (به طور معمول با رسیدها) دریافت می کنیم. هنگامی که حساب های بانکی ما مشکلات را تجربه می کند ، اعلان های پیامکی دریافت می کنیم.
بیایید جدول را بچرخانیم. وقتی خدمات آنلاین می سازیم ، چگونه اعلان ها را برای کاربران ارسال می کنیم؟برای هر کانال اعلان ، به عنوان مثال ، SendGrid یا Amazon SES برای ایمیل ، Twilio برای پیامک یک سرویس یا API وجود دارد ...
در مرحله بعد ، ما برای شروع اعلان ها به نوعی محرک نیاز داریم.
یک نوع ماشه از اقدامات کاربر است. به عنوان مثال ، یک کاربر می تواند از مردم دعوت کند تا بعداً در همان لیست پخش مشارکت کنند. هنگامی که او روی دکمه دعوت کلیک می کند ، یک اعلان نامه الکترونیکی را ایجاد می کند که به مشارکت کننده بالقوه ارسال می شود. بنابراین سرور وب پیامی را در صف پیام قرار می دهد و یکی از کارگران پیام را انتخاب می کند و بعداً ایمیل دعوت را ارسال می کند.
نوع دیگر ماشه از برنامه های مبتنی بر زمان است ، به عنوان مثال ، هر روز صبح به این 500 نفر ایمیل ارسال کنید.
هر یک از بلوک های موجود در نمودار معماری یک فرآیند یا چندین فرآیند در سیستم عامل ها را نشان می دهد. ما می توانیم آن فرآیندها را بر روی یک سرور یا چندین سرور اجرا کنیم.
ما به طور معمول برای مخاطبان مختلف و برای اهداف مختلف ، مجموعه ای از مجموعه های مختلف از سرورها ایجاد می کنیم.
هر مجموعه از سرورها در یک محیط جداگانه اجرا می شود.
سرورهای موجود در محیط تولید ترافیک زنده را ارائه می دهند. مخاطب از کاربران واقعی تشکیل شده است.
سرورهای موجود در محیط مرحله بندی در درجه اول برای آزمایش هستند. مخاطب از کارمندان این شرکت تشکیل شده است. ما به محیط صحنه نیاز داریم تا قبل از انتشار کل Shebang به تولید ، ویژگی های محصول را به صورت دستی آزمایش کنیم.
و ما برای اهداف توسعه ، که به طور معمول توسط یک توسعه دهنده واحد استفاده می شود ، به یک محیط DEV نیاز داریم.
برای گوش دادن به یادداشت ها ، ما از Vagrant & VirtualBox برای تنظیم یک ماشین مجازی استفاده می کنیم. و ما همه چیز را درون این دستگاه مجازی اجرا می کنیم.
از آنجا که کد باطن یادداشت های گوش دادن در درجه اول در Python/Django نوشته شده است ، من از PyCharm برای نوشتن کد استفاده می کنم. من می دانم ، این در مقابل کد یا هر نوع ویرایشگرهای جالب دیگری نیست که دیگران از آنها استفاده می کنند. اما من 1000 برابر بیشتر از استفاده از PyCharm نسبت به استفاده از ویرایشگرهای دیگر متن استفاده می کنم - هرچند که من 5 سال یک کاربر VIM بودم و یک کاربر Emacs برای 6 سال دیگر :) این مانند بعضی از افراد غذای تند هستند ، در حالی که برخی دیگر اینگونه نیستند. ما نمی توانیم افرادی را که غذای تند دوست ندارند مقصر بدانیم ، درست است؟در جنگ مذهبی Ides ، زبانها ، فناوری ها شرکت نکنید ... انجام کارها از اهمیت بیشتری برخوردار است.
از نظر مهندسی جلوی ، من در اینجا بسیار کم است. گوش دادن به یادداشت ها فقط یک وب سایت دارد. ما برنامه های بومی نداریم (به جز یک برنامه آزمایشی فقط گوش دادن).
برای جلوی وب ، من از Reactjs و Bootstrap معمولی استفاده می کنم. امروزه بسیار استاندارد است.
اگر تازه با پروژه های خود شروع کردید ، من پیشنهاد می کنم ابتدا روی یک پلتفرم واحد تمرکز کنید. خیلی زود به پلتفرم نروید. ما به طور معمول در همان ابتدا منابع بسیار محدودی داریم. به اینستاگرام نگاه کنید: وقتی آنها یک شرکت مستقل بودند ، آنها در ابتدا فقط یک برنامه iOS داشتند. و آنها با قیمت 1 میلیارد دلار به دست آمدند.
اگر در حال ساخت یک وب سایت هستید ، حتماً از روز 1 آن را پاسخگو باشید. می توانید به راحتی از ابزارهای توسعه دهنده مرورگرهای مدرن برای آزمایش اندازه های مختلف صفحه (به عنوان مثال ، در Chrome) استفاده کنید.
شما همچنین می خواهید در چندین سیستم عامل و مرورگرها تست کنید. یک سرویس برای آن وجود دارد: از Browserstack استفاده کنید.
اگر بیش از یک سرور دارید ، بهتر است نرم افزار را نصب نکنید و پیکربندی را به صورت دستی انجام دهید. زیرساخت ها به عنوان کد امروزه یک روش معمول در شرکت های اینترنتی است. در اصل ، ما مشخصات سرورها را رمزگذاری می کنیم و پیکربندی سرور را خودکار می کنیم.
برای گوش دادن به یادداشت ها ، ما از Ansible استفاده می کنیم. ما باید یک دسته از پرونده های پیکربندی YML بنویسیم تا مشخص کنیم چه نرم افزاری را نصب کنید و پرونده های پیکربندی را در کجا قرار دهید. هنگامی که ما Ansible-Playbook را در خط فرمان اجرا می کنیم ، به طور خودکار چندین سرور را برای ما پیکربندی می کند.
امروزه سرورها الاستیک یا حتی زودگذر هستند ، با تنظیمات تقاضا متناسب با حجم کار لازم. سرورها می آیند و می روند. ممکن است در طول روز سرورهای بیشتری را اجرا کنید ، هنگامی که ترافیک بیشتری وجود دارد. و در هنگام ترافیک کمتر سرورهای کمتری را اجرا کنید. زیرساخت ها به عنوان کد این نوع کار را آسان می کند.
شرکت های اینترنتی امروزه ، حداقل یک بار در هفته یا حتی بسیاری از اوقات در روز ، کد را بسیار غالباً مستقر می کنند. برخی از شرکت ها هر زمان که یک تعهد جدید وجود داشته باشد ، استقرار مداوم و حمل و نقل را انجام می دهند.
برای یادداشت های گوش دادن ، من یک اسکریپت سریع برای استقرار کد دارم ، جایی که می توانم محیط استقرار ، نوع سرور و GIT را به عنوان پارامترها مشخص کنم. بنابراین می توانم یک دکمه را فشار دهم و یک نسخه خاص از کد (به عنوان مثال ، سر یا هر تعهد Git) را به سرورهای خاص (به عنوان مثال ، وب ، API ، کارگر ...) در یک محیط خاص (به عنوان مثال ، تولید ، مرحله بندی ...) مستقر کنم.
ما کد جدید را مستقر می کنیم ، اما لزوماً ویژگی های جدیدی را منتشر نمی کنیم. امروزه ما در کد ضامن را انجام می دهیم ، که اساساً برخی از اظهارات IF-Else است. ما می توانیم کد جدید را در پشت عبارت IF پنهان کنیم و از متغیر ضامن ویژگی برای کنترل اینکه آیا کد جدید را اجرا می کنیم یا خیر ، استفاده می کنیم. ما به طور معمول متغیر ضامن ویژگی را در نوعی داده ، به عنوان مثال ، Redis ذخیره می کنیم. ما می توانیم اینجا خیلی فانتزی برویم. ما می توانیم ویژگی جدید را به 10 ٪ کاربران ابتدا ، سپس 20 ٪ ، سپس 50 ٪ ، سپس 100 ٪ تبدیل کنیم.
خدمات آنلاین باید 24/7 صعود کنند. بنابراین داشتن ابزاری برای نظارت و هشدار مهم است.
یک سرویس برای آن وجود دارد!
بسیاری از شرکت ها از DataDog استفاده می کنند. ما از DataDog در یادداشت های گوش نیز استفاده می کنیم. ما به راحتی می توانیم نمودارهای مانیتورینگ را بسازیم تا دید خوبی برای سرورها و برنامه ها فراهم کنیم. ما همچنین می توانیم هشدارهایی را تنظیم کنیم که برخی از معیارها غیر طبیعی باشند (به عنوان مثال ، بالاتر از آستانه خاص).
اگر می خواهید بهترین شیوه های ساختمان سازی و بهره برداری از خدمات آنلاین را بیاموزید ، برنامه دوازده عاملی را بخوانید.
وقتی صحبت از ابزارهای داخلی می شود ، من این تصویر کوه یخ را می بینم. ابزارهای داخلی بخش بزرگی از کد مانند کوه یخ در زیر آب است که برای افراد خارجی نامرئی است.
اگر قبلاً هرگز یک سرویس آنلاین محبوب را اداره نکرده اید ، نمی دانید که برای استفاده در داخل (توسط خودتان ، توسط کارمندان خود) باید ابزارهای زیادی بسازید.
شرکت های مختلف ابزارهای داخلی مختلفی را برای اهداف مختلف می سازند. تا کنون ، من برخی از ابزارهای داخلی را برای کمک به توسعه ساخته ام (به عنوان مثال ، اعلان ایمیل پیش نمایش بدون ارسال ایمیل) ، برای ارائه دیدگاه خدا (به عنوان مثال ، به نمایش داده های جستجو مراجعه کنید ، به سرعت اطلاعات را برای یک کاربر خاص بکشید ...) و برای مبارزه با بدبازیگران (به عنوان مثال ، اعتدال محتوا ، اسپم را تشخیص می دهند ...).
بنابراین تا این لحظه ، ما می دانیم که چگونه یک شرکت را با 500 دلار راه اندازی کنیم و می دانیم که چگونه یک سرویس آنلاین با مهندسی کافی ایجاد کنیم.
چگونه مردم چیزی را که شما ساخته اید پیدا می کنند؟چطوری پول در می آوری؟
مهندسی قطعی است. بازاریابی و تجارت غیر تعیین کننده است. اگر می خواهید یک سرویس آنلاین بسازید ، می توانید آن را بسازید. اما ما اکنون در دنیای پر سر و صدا زندگی می کنیم. تن چیزها برای توجه ما رقابت می کنند. بازاریابی بسیار سخت است.
من متخصص بازاریابی نیستم. من هنوز فهمیدم که چگونه خودم بازاریابی بهتری انجام دهم ...
چندین کانال وجود دارد که می توانید برای بیرون آمدن پیام های خود از آنها استفاده کنید. همه آنها را امتحان کنید. مؤثرترین را پیدا کنید. دو برابر آن یکی. توصیه ای در اینجا: 19 کانال که می توانید برای دستیابی به کشش استفاده کنید
اگر می خواهید SEO را انجام دهید ، می توانید آموزش های خوبی را در اینترنت پیدا کنید. اما به طور کلی ، شما می خواهید وب سایت خود را با سرعت ممکن انجام دهید. Google امروزه وب سایت های سریع را ترجیح می دهد.
بهترین سند سئو از خود Google است.
و اگر در مورد ترافیک یک وب سایت کنجکاو هستید ، فقط از پسوند Chrome مشابه WABE استفاده کنید. این تعداد 100 ٪ دقیق نیست ، اما باید به همان ترتیب از بزرگی باشد :)
یک شرکت اینترنتی با فروش چشم های چشم به تبلیغ کنندگان یا فروش کالاها/خدمات به طور مستقیم به کاربران درآمد کسب می کند.
در یادداشت های گوش ، هر دو را انجام می دهیم. ما تبلیغات را با ترکیبی از تبلیغات کربن و فروش مستقیم (مدیریت شده از طریق Google Ad Manager) اجرا می کنیم. ما همچنین API را به توسعه دهندگان می فروشیم.
ممکن است از من بپرسید که چرا من از فناوری های XYZ استفاده نمی کنم. خوب ، من یک شخص عملی هستمهدف این است که به جای انجام فناوری به خاطر انجام فناوری ، کارها را انجام دهیم.
به ویژه ، من فن آوری های خسته کننده را ترجیح می دهم ، که به طور معمول سالها یا حتی دهه ها وجود داشته اند. این پست وبلاگ را برای گوش دادن به یادداشت های Tech Stack بررسی کنید.
مهندسی نرم افزار امروزه بیشتر Google و StackoverFlow-Driven است :) اگر به کمک نیاز دارید ، می توانید اطلاعات بیشتری را برای فن آوری های قدیمی و بالغ از Google & Stackoverflow بیابید-اما مانند بسیاری از موارد در زندگی ما ، این همیشه درست نیست.
من باید به شما خبرهای بدی بگویم: برای شما غیرممکن است که امروزه 100 ٪ ایده های اصلی راه اندازی را ارائه دهید. اگر فکر می کنید ایده شما منحصر به فرد و اصلی است ، احتمالاً به اندازه کافی کتاب نمی خوانید یا به پادکست های کافی گوش نمی دهید :)
وقتی ذکر کردم "یک ابزار/سرویس برای آن وجود دارد" ، این یک استارتاپ است. می توانید ایده های آنها را قرض بگیرید و نسخه بهتری بسازید. یا می توانید با زاویه دیگری با مشکلات مشابه روبرو شوید.