16
\$\begingroup\$

I have a small project for which I would like to ask for a code review soon. However, it integrates multiple languages (specifically, Python + jQuery and the rest of the browser stack).

  1. Can such a project be posted for review?
  2. If so, how should it be done? One question or several?
  3. Can I ask specifically about the logic split between front/back-end or is that too high level?
  4. If yes for 3., does it affect 2.?
\$\endgroup\$
  • \$\begingroup\$ I think there is duplicates on meta, you could search a bit ! I will try to find something for you but almost every point has already been answered (I think). \$\endgroup\$ – Marc-Andre Jun 16 '14 at 19:39
  • 2
    \$\begingroup\$ @Marc-Andre, I did try to search, but nothing came up that was specifically about multiple languages, just project size in general. Could be my search-fu sucks, though. \$\endgroup\$ – otus Jun 16 '14 at 19:42
  • \$\begingroup\$ A few basic points on 3 - anything that deals with security clearly needs to be on the back end. You should probably try and have them loosely connected, so it would be easy to replace one front-end/back-end with another. \$\endgroup\$ – rlms Jun 24 '14 at 16:22
  • \$\begingroup\$ I wanted to add the data point that I just got a bronze css tag without ever having reviewed css ;) \$\endgroup\$ – konijn Jul 15 '14 at 18:23
16
\$\begingroup\$

Short answers:

  1. yes
  2. whichever works best
  3. depends
  4. depends.

Long answers

  1. The code you post has to work and be yours. Debugging things is not the purpose of Code Review. Beyond that, pretty much anything is fair game. So, yes. You can post such a project.

  2. There is a technical limitation of 30,000 characters in a post. If your code is longer than that, you will have to trim, or post multiple questions. Beyond that, I have some observations for you:

    • My observation is that, if you have a long question that is well structured, you can anticipate at most one reviewer to actually delve in to your code and 'understand' it. If it looks like one person has done this in-depth inspection of your code, then any other answers you get will review the superficial aspects of your code. Things like indentation, variable naming, etc. Apart from the one in-depth review you may get, I would estimate that no-one else will spend more than 10 or 15 minutes on your question. Some people will just skip your question because it is too much to digest. I limit myself to at most one long-question answer each week for example.

    • anticipate each answer to address between 2 and 5 'points' in your code, and to fill a single 'page' at most (this is true for any Code Review review, not just long-question reviews). This means that the in-depth review will find a few 'deep issues' to report on, and the superficial ones will show some relatively mundane things. Do not expect any answers to cover all the things you want covered. You will have to aggregate the information from multiple answers, and there will likely be gaps in the review in the sense that there may be things you wanted feedback on, but did not get.

    • if you post a lot of code, you tend to get more general, and not as in-depth detail-oriented answers (you will not get line-by-line reviews). This is a trend, not an absolute. People will see patterns in your code and review those patterns.

    So, you will have to decide how you want to process your question. If you want deep inspection of multiple parts of your code, I recommend asking separate questions which focus on specific areas. In this case, you will likely find it useful to split the question along the language boundaries as well... it is a natural division, and it will tend to attract the specialists in each field. Id there are distinct sections in each language, then split it further.

    Also consider posting a higher-level question that covers the overall design.... It is hard to do this on Code Review because it feels like 'stub' code, but, with the other questions available, it can be done. Also, for th ehigh level one, technically the design is not up for review, just the code is, but normally the design is 'touched' on during a review anyway.

    Remember, reviewers are not as 'invested' in your code as you are. You cannot expect a reviewer to be willing to spend hours and hours inspecting your code. Make it a bite-size chunk of work for the reviewer(s). You will get more diverse, and in-depth reviews if you have smaller, more specific questions that tackle a well-structured problem.

  3. The logic split between server and client is a challenging one. If you get it wrong, you are going to be told it is wrong. If you get it right, the odds are you will be told it's good. But, asking what is right, and what is wrong, is really a question for Programmers.se. You may get suggestions to do it differently, but that is different to getting a 'design review'.

  4. I think this is covered.

All in all, I believe the quality of the reviews you get is proportional to:

  • how easy you make it to 'digest' the question content
  • how good your code is to start with (don't expect deep and insightful reviews on code that has crappy variable names and no indentation)
  • how interesting the problem is that you are solving
  • how much you visit the 2nd monitor chat room.
\$\endgroup\$
8
\$\begingroup\$

Can such a project be posted for review?

There's definitely precedent for this; plenty of questions have been asked which incorporate (for example) HTML, JavaScript, and CSS.

If so, how should it be done? One question or several?

If it fits in one question reasonably, one question is fine. On the other hand, if it makes more sense to separate it, go for it.

Can I ask specifically about the logic split between front/back-end or is that too high level?

There seem to be mixed opinions about whether high-level reviews are appropriate, but I've never seen a question get closed for asking for a high-level review. It won't hurt to ask.

If yes for 3., does it affect 2.?

Well, if you split it into two questions, it will be difficult to ask something pertaining to both questions.

\$\endgroup\$
4
\$\begingroup\$

Keep in mind that questions get 5 points per upvote, and answers get 10 points per upvote, regardless of length.

Long questions are unlikely to get upvoted, because most voters don't want to have to read that much text before deciding whether you question is good.

Long questions usually require long answers. Most reviewers would prefer to work on simpler questions.

Long answers are unlikely to get upvoted as well.

Therefore, there are many incentives to keep your questions short and simple.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .