نقشه راه پیتون درجه دوم: ساخت یک توسعه دهندگان صفحه گسترده عشق

ساختن صفحه گسترده برای توسعه دهندگان به معنای ایجاد یک تجربه عالی برای توسعه دهنده است.
ما از همان ابتدا به عنوان صفحه گسترده کد ، درجه دوم ساختیم تا مطمئن شویم که کد به جای اینکه مانند یک پیچ صفحه گسترده باشد ، یک شهروند درجه یک بود. این به ما کمک کرده است تا یک تجربه توسعه دهنده محکم ایجاد کنیم ، اما کارهای بیشتری وجود دارد که می خواهیم انجام دهیم.
در زیر ویژگی های مجموعه ای را که تاکنون در اولویت قرار داده ایم ، و همچنین ویژگی هایی که می خواهیم در طول سال جاری بسازیم ، تشریح می کنیم.
پایتون در درجه دوم ، گذشته و حال
کد به عنوان نوع سلول
در درجه دوم ، کد یک است نوع سلولبشر سلول ها می توانند داده ، یک فرمول یا کد باشند و سلول خروجی آن کد را نشان می دهد. در مثال زیر (به عنوان کد) ما دو شماره را جمع می کنیم و جمع به برگه نمایش داده می شود.
همان سلول ، که نوع آن پایتون است و حاوی آن کد است ، خروجی کدی را که ما نوشتیم نیز نشان می دهد.
پیودید: پایتون ملاقات می کند
ما پایتون را مستقیماً در صفحه گسترده با استفاده از Pyodide ، یک درگاه WASM از CPYTHON ساختیم. این به ما امکان می دهد یک تجربه پیتون مبتنی بر وب غنی از ویژگی را که به صورت محلی روی دستگاه کاربر از داخل مرورگر خود اجرا می شود ، بدست آوریم. برای کاربران انفرادی ، بدون ارسال کد به سرور برای اجرای. درعوض ، پایتون با سرعتی که در رایانه ای که عادت کرده اید استفاده می کنید ، بدون چرخش سرورهای بالا و پایین برای گردش کار سرگرمی که از گزینه های محاسباتی ارزان رنج می برند.
خواندن داده ها به پایتون از برگه
هنگامی که پایتون در ورق زندگی می کرد ، ما با تقویت تجربه پایتون با برخی از تماس های اضافی API برای انتقال داده ها از برگه به پایتون شروع کردیم.
# create a variable with the value of a single cell
x = cell(x1, y1)
# create a DataFrame directly from a range of spreadsheet cells, set the first row of cells as the column headers for the DataFrame
df = cells((x1, y1), (x2, y2), first_row_header=True)
از آنجا مجبور شدیم بفهمیم چگونه داده ها را از پایتون به برگه منتقل کنیم.
بهترین تجربه توسعه دهنده بازگشت آخرین خط کد به سلول است. انواع داده ها را می توان به برگه منتقل کرد. DataFrames ، به عنوان آخرین خط کد ، داده ها را به عنوان جدول برای هر مقدار مربوطه به برگه باز می گرداند. نمودارها ، به عنوان آخرین خط کد ، یک نمودار را به صفحه گسترده باز می گردانند. لیست های بازگشت لیست ها. سری بازگشت سری. و غیره داده ها یکپارچه به برگه منتقل می شوند. و سلولهای دیگر می توانند به آن خروجی داده ها برای انجام محاسبات بیشتر مراجعه کنند.
پانداس بومی
پاندا رایج ترین کتابخانه تجزیه و تحلیل داده ها در پایتون است. ما آن را ساختیم تا بومی درجه دوم باشد. دستورات اضافی مانند first_row_header = درست است اجازه پشتیبانی پاندا بهتر از ورق را می دهد. دریافت داده ها و خارج از Dataframes ، به و از طریق برگه ، یکپارچه است. و ما مفتخریم که وس مک کینی ، خالق پاندا را به عنوان یک سرمایه گذار در درجه دوم داریم.
ساختن یک ویرایشگر خوب
ساختن یک ویرایشگر کد خوب سخت است. ویرایشگر ما مبتنی بر موناکو ، ویرایشگر کد است که در مقابل کد Powers. ما موناکو را گرفتیم و در سفر به سمت ساخت بهترین تجربه ویرایشگر ممکن در یک صفحه گسترده شروع کردیم.
برخی از ویژگی هایی که اخیراً بر روی آنها روبرو شده ایم که نسبت به آنچه به نظر می رسد کم اهمیت است:
… و بسیاری از مشکلات سخت تر (این بخش صادقانه به یک پست اختصاصی نیاز دارد تا توضیح دهد که چقدر کار در ساخت ویرایشگر کد خوب انجام می شود)
ابزاری عالی برای همکاری
ما ویرایش چند نفره در زمان واقعی را اضافه کردیم و این کار را دنبال می کنیم تیم، ویژگی هایی که تیم ها را قادر می سازد فضای مشترکی داشته باشند تا بتوانند با هم در تجزیه و تحلیل همکاری کنند.
قدم بعدی به سمت همکاری عالی ، تبدیل ویرایشگر کد ما نیز به عنوان یک تجربه چند نفره است.
اسناد و مواد پردازنده
در حالی که بسیاری از افراد ممکن است با صفحات گسترده آشنا باشند ، درجه دوم دارای ویژگی های اختصاصی زیادی است که کاربران در جای دیگر پیدا نمی کنند. تجربه یک بوم خالی حتی با برخی از دانش قبلی می تواند بسیار زیاد باشد. بنابراین بسیار مهم بود که ما شروع به سفر به ساخت اسناد عالی و مواد سوارکاری کردیم. در طی 4 ماه گذشته ما از مواد بسیار کم همراه به:
کجا می رویم ، آینده درجه دوم
ما فکر می کنیم بهترین تجربه توسعه دهنده را در صفحه گسترده ایجاد کرده ایم ، اما قبل از رضایت ما مسیری طولانی داریم.
صفحات گسترده مدرن هنوز حالت پیش فرض تجزیه و تحلیل برای توسعه دهندگان نیستند – نوت بوک ها و ابزارهای سنگین کد هنوز کاربران بیشتری را ضبط می کنند. ما چیزهای زیادی داریم که می دانیم برای ایجاد یک تجربه عالی توسعه دهنده باید بسازیم ، اما ما همیشه به دنبال بازخورد بیشتر هستیم. در زیر مواردی وجود دارد که می دانیم باید طی 12 ماه آینده بسازیم. احساس راحتی کنید تا ما را به سمت ویژگی های حتی بیشتر که باید بسازیم اشاره کنید: با ما تماس بگیرید.
اتصالات SQL/DATA
یکی از نزدیکترین نسخه های اصلی ما اتصالات SQL و Data است. کاربران می توانند مستقیماً به منابع داده خود متصل شوند و تجزیه و تحلیل خود را از داده های خود شروع کنند. این یک گام آشکار است ، به خصوص برای موارد استفاده از کار/سازمانی ، اما ممکن است برای موارد استفاده از سرگرمی کمتر مفید باشد.
دوندگان ابر
در حالی که pyodide برای کاربر فردی عالی است ، ما فکر می کنیم اجرای کد کاربر در ابر ما برای مشتریان سازمانی یک مرحله بعدی آشکار است. اجرای کد ما برای مزایایی که کاربران می توانند با سطح منابع مختلف بدست آورند ، به سرورها می پردازیم ، برای برنامه های رایگان ما به اجرای محلی می پردازیم تا گردش کار سرگرمی کند نشود.
Cloud Runners همچنین API های ورق را فعال می کند تا بتوانید کد ورق را در فواصل یا از طریق تماس API اجرا کنید. از اینجا ، کاربران می توانند گزارشگری و بسیاری از موارد استفاده بسیار مورد نظر را از بازخورد کاربر به صورت خودکار انجام دهند.
اسرار
نوشتن اسرار و متغیرهای محیط در کد در برگه شما ایده آل نیست. اسرار یک ویژگی بارز است که ما اضافه خواهیم کرد تا تیم ها بتوانند روی اسرار همکاری کنند که شاید همه افراد در این تیم نباید به آنها دسترسی پیدا کنند.
انتخاب بهتر مناطق ورق
در حال حاضر ، اگر می خواهید داده ها را از سلول های موجود در برگه به یک Dataframe در پایتون بدست آورید ، باید بفهمید که کدام سلول ها حاوی داده ها هستند و سپس آن محدوده سلول را به صورت کد وارد می کنند. مرحله بعدی این تکامل کشیدن و انتخاب است ، با میانبر برای انتخاب خودکار گروه های بزرگی از داده ها و دکمه همراه با فشار برای دریافت این داده ها از برگه به کد.
فرمول های درون خطی (= به فرمول ، / به کد)
ما فرمول ها را به طور پیش فرض به عنوان ویرایشگر چند خط ساختیم. ما فهمیدیم که این بهترین رویکرد در بیشتر زمان ها نبوده و آنها را به صورت خطی مانند کاربران استفاده می کند. ما انتظار داریم که بیشتر تحلیل ها به صورت کد اتفاق بیفتد ، اما فرمول های کوتاه که ممکن است برای جمع بندی () برخی از داده ها انجام دهید یا برخی از تجزیه و تحلیل سریع دیگر را انجام دهید ، به بهترین وجه با یک ویرایشگر درون خط انجام می شود.
کد قابل استفاده مجدد
یکی از مهمترین نقاط درد در حال حاضر در درجه دوم ، استفاده مجدد از کد است. کاربران بی شماری راهی برای ایجاد کارکردهای جهانی که می توانند در کل برگه های خود استفاده کنند ، درخواست کرده اند. ما در حال طوفان مغزی بهترین راه برای امکان پذیر کردن این کار بدون استفاده بیش از حد ورق هستیم.
ویژگی های صفحه گسترده جدول
ما یک لیست طولانی از ویژگی های صفحه گسترده مورد انتظار مانند منابع نسبی ، فرمول های خودکار و موارد دیگر را که برای کاربران صفحه گسترده ضروری است ، دریافت کرده ایم. آنها به پشت اولویت های ما افتادند ، اما ما اخیراً با صدای بلند و واضح از بازخورد کاربر شنیدیم که باید حداقل ویژگی های صفحه گسترده ای را که در حال حاضر از دست داده ایم اضافه کنیم. بعضی اوقات ، فرمول ها برای حل مسئله بهتر از کد هستند.
پشتیبانی بهتر از هوش مصنوعی
ما ChatGPT را به ویرایشگر کد خود اضافه کردیم و برخی از کاربران آن را دوست دارند. اما ما می توانیم خیلی فراتر از آنچه داریم پیش برویم. در حال حاضر ، شما توصیه های کد را بر اساس وضعیت برگه دریافت می کنید ، اما دسترسی به نوشتن ندارید. ما می خواهیم دسترسی به نوشتن را اضافه کنیم تا وقتی به سؤالات کد پاسخ می دهید ، می توانید آنها را مستقیماً در کد بپذیرید. ما همچنین می خواهیم دسترسی به برگه را اضافه کنیم تا AI بتواند تجزیه و تحلیل را از داده های موجود در برگه شما ایجاد کند. امکانات گسترده است اما این یک جهت آشکار است.
پشتیبانی بیشتر زبان
هنگامی که احساس می کنیم پشتیبانی پایتون ما در یک مکان عالی قرار دارد ، ما قصد داریم زبانهای بیشتری را به درجه دوم اضافه کنیم – JavaScript در صف قرار دارد. با این وجود ، ما می خواهیم اطمینان حاصل کنیم که تجربه توسعه دهنده ما در پایتون قبل از پایین آمدن از این مسیر خارق العاده است ، با وجود اینکه زمان بسیار بد برای اجرای زبان های اضافی بد نیست.
نقشه راه دو طرفه
ما می دانیم که باید ده ها ویژگی دیگر را بسازیم و اولویت ها می توانند گاهی اوقات چالش برانگیز باشند. می توانید نقشه راه به روز ما را در GitHub مشاهده کنید.