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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Dear back end web engineers: how would you describe back end work?

4 点作者 jobhdez超过 1 年前
Hello you all. I find backend web engineering interesting especially the infrastructure such as http and tcp protocols, key value stores, cache, message queues and so on. I’ve done some toy web services but personally and I’m curious about the event driven nature of node. I find node actually interesting. I have tried Django but don’t find Django intellectually stimulating at all.<p>So could you tell me what you do as a backend engineer and what are the challenging and interesting problems you have to solve?<p>I have googled this of course but I get the same crap so I’d like to ask people here because I think I’ll get better answers. Thanks for your time. Merry Christmas

2 条评论

dave4420超过 1 年前
The core of it is the databases. Everything else is window dressing.
wg0超过 1 年前
You&#x27;ll rarely get the chance to write something from scratch as most code bases are already in place with their structure so there&#x27;s that.<p>But bulk and at the heart of it all is always a database. The rest of it gets built because databases aren&#x27;t that powerful for all the use cases.<p>Let me explain.<p>You mostly get data (in some format, JSON, HTML forms), validate it, cross reference it within database and then write it to different tables. On the read path, you do the reverse, you check some access rights, combined different pieces, assemble them into response.<p>But because reading from databases over and over is expensive, you end up adding an in memory caching such as Redis, memcache, varnish etc. So that&#x27;s first optimisation and layer of complexity.<p>But reads are not only plain reads, sometimes users need to search and databases are not very good at that or at least, gets very expensive. So now you need to pair some Information Retrieval system (Elasticsearch, Solr etc) and now you need to keep that system in sync whenever something new gets written, or gets updated or gets deleted and of course, you search in that store. So that&#x27;s the next layer of complexity.<p>Then, some read operations might not be search but could be lots of assembling, computing, cross referencing and aggregating of data. These usually take several minutes or hours. That&#x27;s where you have to &quot;queue&quot; them to process them in the background so you need a queue system. This then requires adding a queue (Redis, RabbitMQ, ActiveMQ, SQS etc) and a software layer on top (Sidekich, Celery etc) so there&#x27;s that.<p>Lastly, if you have some data from users that gets accessed with wider public (such as images that are uploaded) then you might need some object store (S3) and CDN in place and the logic to update the content in CDN.<p>That&#x27;s about 90% of the backend work in 90% of the shops. There are then microservices but that&#x27;s totally unnecessary in most cases. The only end result of them is that a single developer cannot run the whole application on their machine without pulling in some 50+ half a GB images each but still requiring access to the company&#x27;s staging environment (through VPN if working remotely) and everything becomes extremely complicated to debug for no reason.<p>Typical tasks<p>-------------<p>Apart from implementing new features which would entail lots of debate about how to structure the data, how each system would get updated, there would be bugs from time to time. First types of bugs are when the PM forgot to specify something or development team misinterpreted something that was specified in the requirements or the whole business unit (development team + PM) didn&#x27;t fully understand a particular use case. IMHO - In good teams, I have not seen that kind of bugs that frequently because PMs known exactly what they want and get questioned a lot by development team so usually what gets delivered is what was required.<p>The other kind of bugs that you might expect is where as there are lots of moving parts so some might not be in sycn with other such as the Information Retrieval system does not have something that it should have or has something that it should not have or some background task getting executed multiple times etc.<p>Last note - larger the code base, slower would be the development pace. Few years down the road, as people come and go, rarely anyone has a full insight into how the whole system works.<p>EDIT: Typos + nature of work
评论 #38767380 未加载