TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Meta developer tools: Working at scale

245 点作者 ot将近 2 年前

20 条评论

zug_zug将近 2 年前
I think Meta&#x27;s tooling is inferior to industry standard. I actually took a survey while I was there, and that wasn&#x27;t the majority opinion, but frankly I think most outsiders would absolutely agree.<p>Things like Eden were a great idea, but tools had all sorts of issues they gloss over (a virtual file system can be really slow if you have a ton of small files), dev environments would randomly fail a lot, really the only tool they had that nobody disliked was their log-searching thing (can&#x27;t remember what it&#x27;s called) but it was still lightyears behind something likes splunk.<p>It was my conclusion that &quot;Wow you have 15 people working on a dev-tool compared to a public company with 100 building the industry-standard version over 10 years with actual product managers and UI experts, no wonder ours looks like crap... wouldn&#x27;t it be cheaper just to take .01% of your salary and buy standard dev tools&quot;<p>I guess &quot;Clunky&quot; is the word I&#x27;m looking for. &quot;Blow it away and make a new one&quot; was a phrase that happened with some regularity for dev-envs, repo-checkouts, etc. And iirc restarting your dev box took like &gt;30min.<p>---<p>Side note - the other strangest thing was some of these tools people agreed were terrible (restart takes 30min). So you&#x27;d expect thousands of engineers to be swarming any system with any UI bug, edge-case, or whatever. But it just didn&#x27;t work that way.
评论 #36508019 未加载
评论 #36507350 未加载
评论 #36506530 未加载
评论 #36509903 未加载
评论 #36507271 未加载
评论 #36509789 未加载
评论 #36506576 未加载
评论 #36506454 未加载
评论 #36507839 未加载
评论 #36506912 未加载
评论 #36506496 未加载
评论 #36513001 未加载
评论 #36512842 未加载
评论 #36512213 未加载
评论 #36507404 未加载
评论 #36515047 未加载
评论 #36512850 未加载
blitz_skull将近 2 年前
Sapling looks quite cool! I&#x27;ve used git extensively in my career and consider myself as having a slightly-more-advanced-than-typical understanding of how to use it just based on conversations with colleagues. However, one thing that&#x27;s always been very limiting with git has been stack-based PR reviews, and as they mentioned amending deep commits. It&#x27;s not impossible, but it makes it awkward enough that I usually avoid it if possible.<p>Curious if anyone has used Sapling after lots of time using git. Is it the future?
评论 #36506079 未加载
评论 #36510252 未加载
评论 #36509148 未加载
评论 #36506027 未加载
yawnxyz将近 2 年前
This kind of stuff puts me off from wanting to work at FB. If I got really good at working with these tools (or fell in love with this tooling), I wouldn&#x27;t really be able to go back to working &quot;in the real world&quot;
评论 #36507278 未加载
评论 #36506412 未加载
评论 #36509557 未加载
评论 #36506326 未加载
评论 #36509937 未加载
评论 #36506293 未加载
评论 #36506343 未加载
评论 #36506306 未加载
ffpip将近 2 年前
Archive link for people who block facebook - <a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20230628131034&#x2F;https:&#x2F;&#x2F;engineering.fb.com&#x2F;2023&#x2F;06&#x2F;27&#x2F;developer-tools&#x2F;meta-developer-tools-open-source&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20230628131034&#x2F;https:&#x2F;&#x2F;engineeri...</a>
kayson将近 2 年前
I know git is complex, and the UX is sometimes messy, but after really, really learning it (shoutout to the Github training folks), I&#x27;ve never had any problems that couldn&#x27;t be solved. I understand the desire to simplify some things, and their log looks way better than gits, but I wish they&#x27;d contribute back instead of rolling their own entire VCS.<p>The one thing that is super exciting to me is the stacked pull request support. Using Github for this kind of workflow is enormously painful. Conversations constantly get outdated, and its nearly impossible to track whether comments have been addressed.<p>I know they&#x27;re working on an improved UX&#x2F;experience there, but it seems like it&#x27;ll be a good long while, especially for enterprise server customers.
评论 #36509204 未加载
评论 #36512069 未加载
评论 #36508300 未加载
评论 #36508910 未加载
arnon将近 2 年前
Surprised to see them use Phabricator (I know it came out of there, but I basically already forgot it existed)<p>I used it briefly but couldn&#x27;t get most people to adopt it widely enough.
评论 #36505466 未加载
评论 #36506218 未加载
评论 #36505978 未加载
评论 #36505593 未加载
评论 #36507496 未加载
baggiponte将近 2 年前
I am genuinely curious about wasabi, the python LSP they announced on Meta open source but is not available anywhere. Would love to try that out, there is not enough competition in the LSP space in Python and it would foster new development <a href="https:&#x2F;&#x2F;developers.facebook.com&#x2F;blog&#x2F;post&#x2F;2022&#x2F;07&#x2F;18&#x2F;enabling-faster-python-authoring-with-wasabi&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;developers.facebook.com&#x2F;blog&#x2F;post&#x2F;2022&#x2F;07&#x2F;18&#x2F;enablin...</a>
评论 #36511385 未加载
ghnws将近 2 年前
The linked article has a section about IDE that this one does not touch. I was surprised they are locking them selves in to one tool with their workflow.<p>I&#x27;m a bit worried about the dominance of VS Code. I can&#x27;t stand the editor and it&#x27;s popularity just grows and grows.
评论 #36509314 未加载
评论 #36509128 未加载
qwertywert_将近 2 年前
If Meta acquires a new company codebase, do they just move it into their monorepo immediately?
评论 #36509489 未加载
rochak将近 2 年前
I just love talking about build systems, editors and developer tooling. Anyone has resources on where I can read about how different companies do it?
评论 #36515220 未加载
TechBro8615将近 2 年前
Off topic, but why haven&#x27;t they migrated these kind of sites to the meta.com domain? I mean, these are <i>Meta</i> tools, right? Not FB tools? Unless... the rename was more of an exercise in liability obfuscation than it was an indication of any kind of reorganization...
zdgeier将近 2 年前
If anyone is interested in an open source VCS that&#x27;s trying to solve similar problems to these internal tools check out <a href="https:&#x2F;&#x2F;jamhub.dev" rel="nofollow noreferrer">https:&#x2F;&#x2F;jamhub.dev</a>.<p>(I am the author)
roland35将近 2 年前
Best tool: macros. You can easily tie in gifs and memes into just about anywhere
kernal将近 2 年前
Sapling looks interesting. Git has a horrible user experience.
vkaku将近 2 年前
Might as well release the Tupperware&#x2F;Twine part and complete the picture :)
Maxff将近 2 年前
Efficiency!<p>- Where are you going?<p>- I&#x27;m going on vacation.<p>- Have you finished your project?<p>- Not yet. Just submitted the diff.<p>[^_^]
mrweasel将近 2 年前
Someone is going to read this and start to retooling their five person developer organisation because: &quot;Facebook uses it&quot;.<p>It&#x27;s funny that the Sapling command is &quot;sl&quot;, that&#x27;s going to conflict with installations of &quot;stream locomotive&quot;.
评论 #36506266 未加载
cletus将近 2 年前
I&#x27;ve worked for both Facebook and Google so can make informed comments on this with two exceptions: Buck2 came after I left and I&#x27;m honestly not sure what sapling is. Is it some Mercurial-like re-implementation a bit like how Google&#x27;s Piper is a re-implementation of Perforce?<p>The tl;dr is that Google&#x27;s developer tooling and ifnrastructure is superior in almost every way. Examples:<p>- When I started at FB we used Nuclide, an internal fork of the Atom editor. While I was there it was replaced by VS Code. It&#x27;s better but honestly they should&#x27;ve built their tooling off of Jetbrains products. Jetbrains make IDEs. VS Code is a text editor like vim or emacs. There&#x27;s a massive difference;<p>- Buck should&#x27;ve been killed and replaced by Bazel. I can&#x27;t speak to Buck2 but this seems like a pointless investment;<p>- Thrift should be killed and replaced with gRPC&#x2F;Protobuf. Same deal;<p>- FB&#x27;s code search is just grep. It&#x27;s literally called BigGrep. Grep can get you pretty far but it&#x27;s just not the same as something with semantic understanding. Google has codesearch, which does understand code, and it&#x27;s miles ahead. This has all sorts of weird side effects too, like Hack code at FB can&#x27;t use namespaces or type aliasing because then grep wouldn&#x27;t be able to find it. When there were name conflicts you&#x27;d sometimes be forced to rename something to get something to compile;<p>- Tupperware (FB&#x27;s container system) is a pale shadow of Borg;<p>- Pushing www code at FB is a very good experience overall. You commit something and it&#x27;ll get pushed to production possibly within an hour or two or, at busier times, it might take to the next day. This requires no release process or manual build. It&#x27;s basically automatic; Google&#x27;s build and release process tends to be way more onerous;<p>- The big achillees heel in FB&#x27;s www code is that it is one giant binary. There&#x27;s no dependency declaration at all. This means there&#x27;s an automatic system to detect if your change affects other things and that process often fails. This leads to trunk getting broken. A lot.<p>- Because of the above problem there is a system to determine what tests to run for a given commit. This is partially about what the affected components are but also longer-running tests aren&#x27;t run-on-commit and often those tests would&#x27;ve found the problem. There is no way to say &quot;if this file is modified, run this test&quot;. That&#x27;s a huge problem;<p>- FB has a consistent system for running experiements and having features behind flags (ie gatekeeper). This wasn&#x27;t the case when I was at Google. It may well have changed;<p>- Creating a UI for an internal tool or a new page is incredibly easy at FB. There are standard components with the correct styling for everything. If you want to write an internal tool, you can start at 9am and have it in production by noon if it&#x27;s not terribly complicated;<p>- The build system for C++ at FB is, well, trash. For Buck (and Bazel), the build system creates a DAG of the build artifacts to decide what to build. FB C++ might take 2 minutes <i>just to load the DAG</i> before it builds anything. This is essentially instant at Google because a lot of infrastructure has been built to solve this problem. This is a combination of SrcFS and ObjFS. Incremental builds at FB to run tests doesn&#x27;t really work as a workflow;<p>- All non-www builds at FB are local builds. Nothing at Google (on Google3 at least) is built locally, including mobile apps. This is way faster because of build artifact cachcing and you have beefier build machines.<p>- There tends to be less choices as to what to use for FB code (eg storage systems). I consider this largely a good thing. You will typically find 5 different way of doing anything at Google and then need to consider why. You will often find different teams solving the same problem in slightly different ways or even the exact same way.<p>- There are people at FB who work on system-wide refactors (eg Web security, storage). These people can often only commit their diffs that might touch thousnads of files on weekends.<p>- A lot of generated code is committed at FB that isn&#x27;t at Google. This exacerbates the previous problem. FB has a ton of partially and completely generated files that mean a change to the generating code has a massive effect. At Google, for example, the protobuf generated code is genearted at build time and isn&#x27;t in the repo.<p>There&#x27;s probably more but that&#x27;s what comes to mind.
评论 #36509302 未加载
评论 #36509957 未加载
评论 #36508875 未加载
评论 #36509643 未加载
评论 #36512976 未加载
评论 #36508085 未加载
say_it_as_it_is将近 2 年前
How many engineers did Meta lay off in the last 12 months? Is there a developer tool for laying off developers?
评论 #36506028 未加载
jonathankoren将近 2 年前
I stopped reading when I reached that they made their own CVS.<p>This is a solved problem, and even if it isn’t, there’s entire communities dedicated to it. There’s literally no reason why Facebook needs to be in the business of reinventing the wheel from scratch beyond some dude trying to show “impact”. It’s a distraction from core business problems.
评论 #36507179 未加载
评论 #36507818 未加载
评论 #36513274 未加载
评论 #36509233 未加载
评论 #36508361 未加载